excel - 列listobject中非空白单元格的vba变量范围
问题描述
我有一个函数,它将 Range 作为变量并运行在该范围内的单元格的值上。我需要将范围传递给构建如下的 taht 函数:
Dim hltTbl As ListObject
Set hltTbl = ThisWorkbook.Sheets("classy").ListObjects(1)
Dim i As Integer
Dim lastrow As Integer
Dim highlightsRange As Range
'range is in highlights from 1 to the first empty
For i = 1 To hltTbl.ListRows.Count
If hltTbl.ListColumns("highlights").DataBodyRange.iTem(i).Value = "" Then
lastrow = i - 1
Exit For
End If
Next
Set highlightsRange = hltTbl.ListColumns("highlights").DataBodyRange.iTem(1).resize(lastrow,0)
这不起作用。我假装是构建包含在 listobject 列的所有非空白单元格中的范围。(注意:单元格形成一个连续体,即非空白单元格之间没有空单元格)。我做了什么找到第一个非空单元格,这将是范围的最后一个单元格,我试图用 reshape(lastrow,0) 重塑列的第一个单元格的范围。这不起作用。
问题:a)我该怎么做 b)为什么这不起作用 c)(我试图不使用过滤器,它们真的很痛苦)
非常感谢。
EDIT1: .SpecialCells(... 似乎不包括非空白,但只有空白 edit2:这似乎有效:
DataBodyRange.SpecialCells(xlCellTypeConstants, xlTextValues)
但它的值是整数......
解决方案
您应该像这样调整大小:.resize(lastrow, 1)
而不是.resize(lastrow, 0)
. 原因是方法“ resize
”采用所需范围大小的行数和列数。任何范围至少有 1 行和 1 列。
推荐阅读
- r - 变异和 case_when 给出了 NA
- mysql - Gitlab CI黄昏 - MySQL连接被拒绝
- prolog - 参数没有充分实例化序言
- javascript - AJAX返回读取php函数
- java - SpringIntegration Poller 复制文件
- django - LOGIN_REDIRECT_URL 在 django2.1 中不起作用
- python - 如何从 Django 项目外部的脚本运行 Django shell 命令
- ruby-on-rails - post 方法在 Ruby on Rails 中如何工作
- c# - 我可以在 Entity Framework 6 中制作全局查询过滤器吗?通过 OnModelCreating?
- python - 通过蓝牙 python 命令发送到另一个 Raspberry Pi