我在excel中创建了一个工具,可以使用两个电子表格,并在我们对工作表本身进行更新时将内容从一个复制到另一个 .
该工具纯粹是为复制/粘贴工具而设计的,当前代码将从一张纸复制到另一张纸 .
我必须在工具中包含逻辑以跳过包含公式的单元格,如果工具将当前在源表格中的公式复制并粘贴到目标工作表,它们将不再匹配并抛出#REF错误 . 关于如何在这里或类似的东西放置for循环的任何建议,以允许它检查和忽略公式的单元格?我只需要复制/粘贴带有数字或值的单元格 .
Sub CopyWorkbook()
Dim wb1 As Workbook, wb2 As Workbook
wb1.Sheets("Capex").Range("H1124:AT1173").Copy
wb2.Sheets("Capex").Range("H529:AT578").PasteSpecial Paste:=xlPasteAll
wb1.Sheets("Capex").Range("H1275:AT1284").Copy
wb2.Sheets("Capex").Range("H580:AT589").PasteSpecial Paste:=xlPasteAll
3 回答
如果您真的想跳过包含公式的单元格,可以使用此示例作为开头 . 该代码假定只有公式以等号开头 . 编辑:使用问题中的范围扩展示例 .
您可以使用
SpecialCells
来识别公式,而不是逐个循环有两种选择
仅将
Constant
单元格复制到目标从目标中删除任何
Formula
单元格如果你的公式出现在一个有条件的块中,那么(1)很容易工作,否则这将导致需要复制的许多区域 . 所以(2)是优选的
您的第一个范围可以如此涵盖 .
你不能只为所有细胞使用
Paste:=xlPasteValues
吗?这样,没有公式被复制到目标表 .