Excel宏打开文件时自动复制粘贴

Excel宏打开文件时自动复制粘贴,excel,copy-paste,vba,Excel,Copy Paste,Vba,我们有两个不同的文件,包含基本的vlookup信息: Source file is: JP2-CSV CRAWLER Destination file is: JP2-CATEGORIES 我们正在尝试将源文件中的一个完整列自动复制到目标文件的第一列(在打开或使用它时应该可以正常工作) 这就是我们的代码: Sub Copysubcat() Dim wbSource As Workbook Dim wbDestination As Workbook Set wbSource = Workboo

我们有两个不同的文件,包含基本的vlookup信息:

Source file is: JP2-CSV CRAWLER
Destination file is: JP2-CATEGORIES
我们正在尝试将源文件中的一个完整列自动复制到目标文件的第一列(在打开或使用它时应该可以正常工作)

这就是我们的代码:

Sub Copysubcat()
Dim wbSource As Workbook
Dim wbDestination As Workbook

Set wbSource = Workbooks.Open( _
    Filename:="C:\Users\user\Desktop\crawler file\JP2-CSV CRAWLER.xlsx")

Set wbDestination = Workbooks("C:\Users\user\Desktop\crawler file\JP2-CATEGORIES.xlsx")

wbSource.Sheets("CSV Crawler").Range("P2:P10000").Copy

wbDestination.Sheets("Cats & Subcats").Range("A2:A10000").PasteSpecial (xlPasteValues)

Application.CutCopyMode = False

ActiveWorkbook.Save
End Sub
我们遇到一个错误“下标超出范围”


任何人都可以在这方面提供帮助。

工作簿
不是一种方法,因此它不能接受任何参数。这是一个表示工作簿的类,它包含处理工作簿的方法。其中一个是
Open
,在本例中您需要它。因此,您需要切换此选项:

Set wbDestination = Workbooks("C:\Users\user\Desktop\crawler file\JP2-CATEGORIES.xlsx")
为此:

Set wbDestination = Workbooks.Open("C:\Users\user\Desktop\crawler file\JP2-CATEGORIES.xlsx")
此外,还有一个事件,例如打开工作簿,您可以将更正后的代码放在那里,这样每次引发此事件时(即每次打开时)宏都会运行。如果您在Excel中使用标准VBA开发环境,请单击右侧(树状视图中)的
此工作簿
,您必须在顶部下拉列表,在左侧的一个中选择
工作簿
,在另一个中选择
打开
(这是由
工作簿
引发的事件列表)。然后,在生成的方法中放置代码:)


如果您告诉我们您在哪一行收到此错误,可能会有所帮助尝试
wbDestination.Sheets(“Cats&Subcats”).Range(“A2”).PasteSpecial xlPasteValues
这一行:Set wbDestination=工作簿(“C:\Users\user\Desktop\crawler file\JP2-CATEGORIES.xlsx”)@DareJc如果工作簿已经打开,使用<代码>设置WBestObjest=工作簿(“JP2-Byth.xLSX”),如果您不需要,首先打开它,然后使用<代码>设置WBestObjest=工作簿。打开(“C:\\用户\桌面\爬虫文件\ JP2类别.xLSX”)< /C> >(不在中间,就像您所拥有的)。很好的解释,也可以为每个场景添加正确的语法。谢谢Michal,我找不到活动,你有截图吗?我附上了一张照片。我的系统设置了波兰语,所以不用担心名称。选择一个有相同图标的:)谢谢Michal,好的,我设法做到了,但我还有几个问题:它打开了2个文件,一个旧版本有宏代码,但数据没有上传,一个上传的没有保留宏代码。是否需要更新文件并用保留代码的新文件保存(替换)文件?您可以编写更多代码,这将关闭打开的工作簿,删除它并重命名当前工作簿。一切都可以做到,只需要一些谷歌技能:)另外,如果你的问题得到了回答,请接受答案,这样将来人们就会知道(被接受的)解决方案是什么:)