将一个表的范围设置为等于另一个

时间:2015-09-23 13:27:07

标签: excel excel-vba range vba

作为更大代码的一部分,我需要将表的一部分从现有工作表复制到新工作表。我想通过设置两个表的范围相等而不是在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

0 个答案:

没有答案