Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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:设置工作簿并激活工作簿错误_Vba_Excel - Fatal编程技术网

VBA:设置工作簿并激活工作簿错误

VBA:设置工作簿并激活工作簿错误,vba,excel,Vba,Excel,有一个简单的任务我想不出来。我想复制wb1.ws1的值并粘贴到wb2.ws2中 这就是我尝试过的 Dim wb1 as Workbook, wb2 as Workbook Dim ws1 as Worksheet, ws2 as Worksheet 'Open wb1 and ws1 and set Set wb1 = Workbooks.Open("R:\Workbook1.xlsx") Set ws1 = Sheet("Sheet1") 'Open wb2 and ws2 and set

有一个简单的任务我想不出来。我想复制wb1.ws1的值并粘贴到wb2.ws2中

这就是我尝试过的

Dim wb1 as Workbook, wb2 as Workbook
Dim ws1 as Worksheet, ws2 as Worksheet

'Open wb1 and ws1 and set
Set wb1 = Workbooks.Open("R:\Workbook1.xlsx")
Set ws1 = Sheet("Sheet1")

'Open wb2 and ws2 and set
Set wb2 = Workbooks.Open("R:\Workbook2.xlsx")
Set ws2 = Sheet("Sheet2")

'Copy Value of wb1.ws1 and paste into wb2.ws2
wb1.ws1.Range("A1").Copy wb2.ws2.Range("A1")
为什么这不起作用?似乎无法通过指定wb1.ws1.range(XYZ)来选择范围

它迫使我把这些线分开

wb1.Activate
ws1.Select
Range("A1").Copy
wb2.Activate
ws2.Select
Range("A1").Paste

似乎效率非常低,但我不知道如何消除激活选择噩梦,一旦您设置了工作表,工作簿父项已经定义。因此,在
集合中声明父项

Dim wb1 as Workbook, wb2 as Workbook
Dim ws1 as Worksheet, ws2 as Worksheet

'Open wb1 and ws1 and set
Set wb1 = Workbooks.Open("R:\Workbook1.xlsx")
Set ws1 = wb1.WorkSheets("Sheet1")

'Open wb2 and ws2 and set
Set wb2 = Workbooks.Open("R:\Workbook2.xlsx")
Set ws2 = wb2.Worksheets("Sheet2")

'Copy Value of wb1.ws1 and paste into wb2.ws2
ws1.Range("A1").Copy ws2.Range("A1")

谢谢我试过这个,但似乎不起作用。它在“Set ws1=wb1.WorkSheets(“Sheet1”)或“Set ws2=wb2.WorkSheets(“Sheet2”)上给我“下标超出范围”,则此工作簿中没有这些名称的工作表。