- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有以下示例表
我有一个 for 循环,贯穿整个 ListColumn(2)
(C/3 列)并根据谁拥有最多的苹果对“用户”进行排名(例如,迈克尔为 1,罗伯特为 2,等等)
但是,假设我只想引用表格的特定范围
(例如,假设 Range("C7:C9") <=> ListRows(3,4,5)
)
我怎样才能做到这一点?
我有以下代码:
Private Sub CommandButton1_Click()
Dim tbl As ListObject: Set tbl = Sheets("Sheet1").ListObjects("Table1")
Dim my_range As Range
For Each my_range In tbl.ListColumns(2).DataBodyRange
' ^ this runs through entire column instead of the specified range I want!
my_range.Offset(0, 1) = WorksheetFunction.Rank(my_range, tbl.ListColumns(2).DataBodyRange)
' ^ again, isntead of entire DataBodyRange we should be rather referencing the specific Range
Next my_range
End Sub
基本上,我需要以某种方式限制 .DataBodyRange
本身进入一个特定的范围,问题是,.DataBodyRange
指定为从整个 ListObject 中获取整个列/行或仅 1 个单元格,如 .DataBodyRange([row index], [column index])
.
因此,在选择 Robert、Michael、Laurel ListRows(3, 4, 5)
的假定示例中预期结果是:
有什么建议吗?
最佳答案
我知道我迟到了,但为了后代......
使用.Offset
和.Resize
执行 tbl.Range
中几乎所有操作的方法或tbl.DataBodyRange
...
仅迭代选定的行:
...
Set my_range1 = tbl.Listcolumns(2).DataBodyRange
For LoopControl = StartRow To EndRow
my_range1.Resize(1).Offset(LoopControl - 1).Value2 = 'your code here
'Alternate code
tbl.ListRows(LoopControl).Resize(, 1).Offset(, 2).Value2 = 'your code here
'Or even:
tbl.DataBodyRange.Resize(1, 1).Offset(2, LoopControl).Value2 = 'your code here
Next LoopControl
请注意,您可以使用 .ListColumns("Apples")
以防事后重新排列列。另外,您可以.Offset(, tbl.ListColumns("Apples").Index)
以适应不断变化的表结构。
或者将行的子集引用为单个范围:
Set my_range = tbl.ListColumns(2).DataBodyRange.Offset(StartRow - 1).Resize(EndRow - StartRow + 1)
'Alternately:
Set my_Range = tbl.ListColumns(2).Range.Offset(StartRow).Resize(EndRow - StartRow + 1)
关于vba - 引用表的 .DataBodyRange 的特定范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50410539/
晚上好, 我有以下按钮来保存表单的注册信息,但是在启动第一条记录时它会抛出错误:错误已发生 91 对象或 block 的变量未建立并指示突出显示的内容: 在已经插入值时它正常工作后,问题仅针对第一条记
假设我有以下示例表 我有一个 for 循环,贯穿整个 ListColumn(2) (C/3 列)并根据谁拥有最多的苹果对“用户”进行排名(例如,迈克尔为 1,罗伯特为 2,等等) 但是,假设我只想引用
我在不同的模块中使用了完全相同的技术,并且像一个魅力一样工作。我已经用下面的代码开始了新的宏,一旦尝试 Select,它就会惨遭失败。所有过滤的单元格都复制到模板文件中。它都使用 Tables所以Li
我有一个过滤的列表对象,需要获取当前可见的行数。我使用此语句来获取行数: MySheet.ListObjects("MyListObject").DataBodyRange.SpecialCells(
我正在尝试重置 Excel ListObject 中的列数。我知道您可以逐一添加和删除列,但我想避免不必要的循环。相反,我决定使用 Resize 方法调整 ListObject 的大小。 这是我正在使
摘要。我试图循环遍历一个表,如果在指定列中找到特定的子字符串,则删除每一行。我特别卡在查找目标文本的代码行上,我知道这是不正确的,但找不到我想要实现的目标的正确语法:If tbl.DataBodyRa
摘要。我试图循环遍历一个表,如果在指定列中找到特定的子字符串,则删除每一行。我特别卡在查找目标文本的代码行上,我知道这是不正确的,但找不到我想要实现的目标的正确语法:If tbl.DataBodyRa
我是一名优秀的程序员,十分优秀!