【发布时间】:2021-05-08 12:29:10
【问题描述】:
我正在尝试在上方插入一行,然后在过滤后的电子表格中上移一行到下一个可见行。因为我想将操作应用于可见行(可以随机间隔),所以这行代码是不够的:
ActiveCell.Offset(-8, 0)
据我了解,这告诉 Excel 向上移动八行(因为我用来记录宏的单元格集恰好相隔八个单元格),而不是在当前过滤条件下移动到下一个可见行。
显示可见数据行随机分布的电子表格摘录
在这种情况下,相隔 6 行,但可以是任意数字。
宏代码:
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.Offset(-8, 0).Rows("1:1").EntireRow.Select
我希望将最后一行代码“向上八行”替换为“在给定当前数据过滤器的情况下向上移动到下一个可见行”。
过滤器显示列 R = 0 的行,但我更喜欢不将该指令合并到 VBA 代码中而只查看可见数据而不是整个电子表格的方法。
【问题讨论】:
-
"doesn't work" 是一个非常无用的错误描述。 “有什么想法吗?” 是一个非常随机的问题。请参阅How to Ask 和minimal reproducible example 提供一个很好的例子并提出一个很好的问题。我强烈建议您阅读How to avoid using Select in Excel VBA,因为这是您为解决此问题而苦苦挣扎的主要原因。 • 请注意,截图和/或示例数据可以更轻松地了解正在发生的事情。
-
谢谢,我已经添加了截图并澄清了问题。