Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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
Vba 从工作表复制数据的Excel宏将生成查询定义而不是数据_Vba_Excel_Copy Paste - Fatal编程技术网

Vba 从工作表复制数据的Excel宏将生成查询定义而不是数据

Vba 从工作表复制数据的Excel宏将生成查询定义而不是数据,vba,excel,copy-paste,Vba,Excel,Copy Paste,正如标题所说,我试图将数据从特定文件复制到工作簿中的新选项卡中,但宏只复制(我假设)用于检索数据本身的查询定义 我已经删除了与外部源的任何连接,但这并没有解决问题。以下是粘贴结果的屏幕截图: 下面是我用来粘贴的代码部分: Set DestWS = wkbDest.Sheets(Curr_Input_File) If Len(wkbDest.Sheets(Curr_Input_File).Range("A1").Value) > 0 Then wkbDest.Sheets(Curr

正如标题所说,我试图将数据从特定文件复制到工作簿中的新选项卡中,但宏只复制(我假设)用于检索数据本身的查询定义

我已经删除了与外部源的任何连接,但这并没有解决问题。以下是粘贴结果的屏幕截图:

下面是我用来粘贴的代码部分:

Set DestWS = wkbDest.Sheets(Curr_Input_File)
If Len(wkbDest.Sheets(Curr_Input_File).Range("A1").Value) > 0 Then
    wkbDest.Sheets(Curr_Input_File).UsedRange.ClearContents
    SheetToCopy.UsedRange.Copy
    DestWS.Range("A1").PasteSpecial xlPasteAll
    Application.CutCopyMode = False
Else
    SheetToCopy.UsedRange.Copy
    DestWS.Range("A1").PasteSpecial xlPasteAll
    Application.CutCopyMode = False

End If

我知道复制/粘贴循环是有效的,因为所有其他文件都是复制/粘贴的,没有问题。但是,仅针对此文件,我遇到了如上所述的问题。如何将其编码为粘贴实际数据而不是查询?FWIW,我在源数据文件的任何地方都看不到查询。

好的,答案很明显,但我找到了答案。有一个包含SQL查询定义的隐藏工作表。默认情况下,我的复制代码只是复制工作簿中的第一个选项卡
SheetToCopy=wkbSource.Sheets(1)
,因此它捕获了SQL查询


我甚至不知道你可以隐藏床单。通过转到“主页”选项卡,在“单元格”部分下,单击“格式-->隐藏和取消隐藏-->取消隐藏工作表”即可完成此操作。

必须有一个工作表包含该查询。您是否已使用调试器?您还可以通过右键单击任何工作表的选项卡,然后选择“取消隐藏…”来取消隐藏工作表。从那里,它将弹出一个菜单的所有工作表是隐藏的,并给你选择“取消隐藏”