我有这段代码,但是当我尝试设置工作簿时却抛出错误。 之所以使用它,是因为我试图从其他工作簿中复制值,但是当我为工作簿设置变量时会出现错误。
我复制了代码以及错误的屏幕截图。
Sub AbrirArchivos()
'Paso 1: Declarar las variables
Dim Archivos As String
Dim vals As Variant
Dim wbcopy As Workbook
Dim wbTarget As Workbook
Set wbTarget = ThisWorkbook
Archivos = Dir("C:\Users\fernandofernandez\Desktop\Prueba\*.xlsx")
Do While Archivos <> “”
Workbooks.Open "C:\Users\fernandofernandez\Desktop\Prueba\" & Archivos
Set wbcopy = Workbooks.Open "C:\Users\fernandofernandez\Desktop\Prueba\" & Archivos
'code
vals = wbcopy.Worksheets(1).Range("E2").Value
wbTarget.Range("C10").End(xlToRight).Select
Selection.EntireColumn.Select
Selection.Copy
wbTarget.Range("C10").End(xlToRight).Offset(0, 1).Select
Selection.EntireColumn.Select
ActiveSheet.Paste
wbTarget.Worksheets(1).Range("F11").Value = vals
'Paso 5: Cuadro de mensaje, cerrar y guardar cambios
'MsgBox ActiveWorkbook.Name
ActiveWorkbook.Close SaveChanges:=True
'Paso 6: buscar más archivos en la carpeta para volver seguir la secuencia
Archivos = Dir
Loop
End Sub
答案 0 :(得分:1)
Do While Archivos <> “”
这是我要看的第一件事。众所周知,语言在期望使用普通引号的地方使用智能引号会挑剔。 VBA可能允许这样做,但请注意。
此外,docs在参数列表的周围带有括号,并且从内存来看,这是VBA中长期存在的约定。函数调用带有括号,过程调用没有括号。
我还将研究是否需要两次打开工作簿:-)
答案 1 :(得分:1)
改为使用此行:
Set wbcopy = Workbooks.Open("C:\Users\fernandofernandez\Desktop\Prueba\" & Archivos)
这应该解决错误。