【发布时间】:2022-06-10 20:16:44
【问题描述】:
我正在尝试创建一个宏来将单元格复制到表格的整个列中,希望在这些公式被更改或替换时充当“刷新”。
我在同一张工作表中有多个表格,因此我无法选择表格名称,因为它们会不断变化。
我在想的是有一个带有关键字的底行,VBA 可以向下选择该关键字,直到他们点击关键字并选择这些单元格来复制公式。
问题是我有多个表,它们都有关键字的底行。
当我录制宏时,我必须多次按 Control+Shift+Down 来解决丢失的行,我想这并非总是如此。这就是这个宏让我害怕的地方,因为有时一个表没有丢失的数据,所以 xlDown 函数会选择比它应该选择的更多的数据。
这是我记录的:
Sub Macro9()
'
' Macro9 Macro
'
'
ActiveCell.Offset(3, 2).Range("A1").Select
Range(Selection, Selection.End(xlToLeft)).Select
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
End Sub
这是我尝试恢复公式的列的示例:
我希望填写“总价”下方的公式,直到找到“总价”一词。请注意,如果工作表的其他地方没有数据,则公式会被隐藏。
此工作表上有多个表格,因此必须在同一张工作表的不同部分工作。
【问题讨论】:
-
您的“表格”是实际的表格/列表对象,还是只是常规范围?如果将它们转换为 ListObjects,您可能会发现它们更易于管理。
-
它们是实际的表格。
-
表格有一个
DataBodyRange属性,它返回表格数据的范围 - 您可以使用它来确定要填充的范围