Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 将一个表的范围设置为另一个表的范围_Excel_Range_Vba - Fatal编程技术网

Excel 将一个表的范围设置为另一个表的范围

Excel 将一个表的范围设置为另一个表的范围,excel,range,vba,Excel,Range,Vba,作为更大代码的一部分,我需要将表的一部分从现有工作表复制到新工作表。我不想在Excel中使用繁重的复制粘贴函数,而是希望通过将两个表的范围设置为相等来实现这一点 下面是我的代码。我正在遍历现有的表标题,并试图只将我想要的列复制到另一个名为“temp”的工作表中。我正在尝试设置范围,我希望公式也可以复制。当我运行代码时,它似乎一直在工作,直到循环中的MsgBox行代码停止并卡住为止 Loop For i = LBound(tableHeaders) To UBound(tableHead

作为更大代码的一部分,我需要将表的一部分从现有工作表复制到新工作表。我不想在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

注释MsgBox行,看看它是否仍然有效。它仍然无效,我不确定我设置的命令是否正确。谢谢不要使用**对代码进行注释。看到了吗?这是结构化表的目标吗?我看不到对目标的任何引用是ListObject(也称为结构化表)。可能会有帮助。目标是一个新的工作表,我正在尝试粘贴原始表的一部分。我将看一看structures表,但为了回答您的问题,工作表是空的,代码试图通过设置表的范围相等来粘贴内容。
ActiveSheet.Range(ActiveCell.Address, ActiveSheet.Range(ActiveCell.Column, tableSourceEndRow).Address).Formula = Sheets("temp").Range(Cells(1, tableColumn), Cells(tableSourceEndRow - ActiveCell.Row, tableColumn)).Forumla