Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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,我正在编写一个VBA程序,用于更改excel数据库的视觉效果。最后,我需要在顶部添加一个“标题”(5行文本)。问题是,我无法使用VBA插入文本,因为它包含与VBA不兼容的字母(例如,á,é…),我需要从另一个excel文件插入该文本。 我拥有的宏存储在一个独立的excel工作簿中,其中还包含我需要复制到数据库中的标题单元格。问题是,我使用的excel文件的名称各不相同。是否有一种方法可以在这两个文件之间切换并在它们之间复制单元格。我是否可以存储正在使用的excel文件的名称,然后在VBA代码中使

我正在编写一个VBA程序,用于更改excel数据库的视觉效果。最后,我需要在顶部添加一个“标题”(5行文本)。问题是,我无法使用VBA插入文本,因为它包含与VBA不兼容的字母(例如,á,é…),我需要从另一个excel文件插入该文本。
我拥有的宏存储在一个独立的excel工作簿中,其中还包含我需要复制到数据库中的标题单元格。问题是,我使用的excel文件的名称各不相同。是否有一种方法可以在这两个文件之间切换并在它们之间复制单元格。我是否可以存储正在使用的excel文件的名称,然后在VBA代码中使用它在工作簿之间切换?

不确定这是否100%回答了您的问题,但希望有帮助,您可以使用以下方法将两个工作簿作为对象打开和存储:

Dim wb as Workbook, wb2 as Workbook 
Set wb  = Workbooks.Open("C:\User\Sample_Workbook_File_Path_1.xlsx")
Set wb2  = Workbooks.Open("C:\User\Sample_Workbook_File_Path_2.xlsx")
从那里,您可以使用以下方法调用任一工作簿中的值:

'to get the second workbooks excel file name into a worksheet: "Sample_Workbook_2"
wb.Worksheets("Sample_Worksheet").Range("A1").Value = wb2.Name 

'to copy files 
wb2.Worksheets("Second_Workbooks_Worksheet").Range("A2:A100").Copy _
   wb.Worksheets("Sample_Worksheet").Range("A2") 

'Alternatively you can store the entire workbooks path name instead of the file name using: 
wb.Worksheets("Sample_Worksheet").Range("A1").Value = wb2.Path   

使用
工作表
对象变量代替存储名称。将新工作簿/工作表建立在已包含5行的模板工作表上。