作为更大代码的一部分,我需要将表的一部分从现有工作表复制到新工作表。我想通过设置两个表的范围相等而不是在Excel中使用重复复制粘贴功能。
我的代码如下。我循环遍历现有的表头并尝试仅将我想要的列复制到另一个名为“temp”的表。我正在尝试设置范围,我也希望公式也可以复制。当我运行代码时,它似乎正在工作,直到代码停止并卡住的循环内的MsgBox行。
Loop
For i = LBound(tableHeaders) To UBound(tableHeaders)
ActiveSheet.Range(tableSourceCell).Select
Do While ActiveCell.Column < ActiveSheet.Range(tableSourceEndHeaderCell).Column + 1
If ActiveCell.Value = tableHeaders(i) Then
**MsgBox (Sheets("temp").Range(Sheets("temp").Range(tableColumn, 1).Address, Sheets("temp").Range(tableColumn, tableSourceEndRow - ActiveCell.Row).Address).Address)
Sheets("temp").Range(Sheets("temp").Range(tableColumn, 1).Address, Sheets("temp").Range(tableColumn, tableSourceEndRow - ActiveCell.Row).Address).Formula = ActiveSheet.Range(ActiveCell.Address, ActiveSheet.Range(ActiveCell.Column, tableSourceEndRow).Address).Formula**
tableColumn = tableColumn + 1
End If
ActiveCell.Offset(0, 1).Select
Loop
Next i
我不确定错误是什么。
*更新 - 我用这个命令替换了循环中的代码,它仍然给我一个错误。
ActiveSheet.Range(ActiveCell.Address, ActiveSheet.Range(ActiveCell.Column, tableSourceEndRow).Address).Formula = Sheets("temp").Range(Cells(1, tableColumn), Cells(tableSourceEndRow - ActiveCell.Row, tableColumn)).Forumla