我有一个宏,可以将一个工作表的数据精确地复制到另一个工作表中。
这意味着结束/偏移码会到公式所在列的最后一个单元格 (C1000),而不是到第一个具有值为 "" 的单元格 (当前为 C260)。
我该在这个宏中添加什么代码来选择包含 IF 公式结果为空白的第一个单元格?
Sub QuickViewRegMgmt()
("Reg Management").Select
Cells.Select
Selection.Copy
Sheets("Quick View Reg Mgmt").Select
Cells.Select
ActiveSheet.Paste
End Sub
我希望这个宏也能够到达C列中最后一个非空单元格(或第一个空单元格,我真的不在意)。我尝试了简单的end/offset代码,例如:
Range("A1").End(xldown).Offset(1,0).Select
然而,我的问题是,直接复制宏还会复制底层公式,对于C列而言,这是一个IF公式。因此,该列中没有任何单元格实际为空,而是所有单元格都有一个IF公式,导致产生true/false值(分别为""或VLOOKUP)。
=IF(VLOOKUP('Reg Management'!$Y260,'Reg Guidance'!$A:$V,3,FALSE)=0,"",VLOOKUP('Reg Management'!$Y260,'Reg Guidance'!$A:$V,3,FALSE))
这意味着结束/偏移码会到公式所在列的最后一个单元格 (C1000),而不是到第一个具有值为 "" 的单元格 (当前为 C260)。
我该在这个宏中添加什么代码来选择包含 IF 公式结果为空白的第一个单元格?
.PasteSpecial xlPasteValues
?还是xlPasteValuesAndNumberFormats
.. - A.S.HRange.Find
方法在指定范围内(例如Columns(1)
)查找第一个空单元格。 - Dirk Reichel=""
行并转到第一个真正的空单元格。 - BruceWaynexlValues
还是xlFormulas
?(例如,Columns(3).Find(What:="", LookIn:=xlValues, LookAt:=xlWhole)
应该可以工作 - 对我来说确实如此。) - YowE3K