循环以打开列中的所有excel文件路径
我已将A列中的目录和B列中的文件名拆分。正在尝试循环宏以打开列中的所有文件 使用下面的代码,它只打开第一个文件。我不知道哪里出了错。代码如下:循环以打开列中的所有excel文件路径,excel,vba,Excel,Vba,我已将A列中的目录和B列中的文件名拆分。正在尝试循环宏以打开列中的所有文件 使用下面的代码,它只打开第一个文件。我不知道哪里出了错。代码如下: Sub openfiles() Dim directory As String, fileName As String, sheet As Worksheet, i As Integer, j As Integer Dim wb As Workbook Dim path As Worksheet Dim row As String Set wb =
Sub openfiles()
Dim directory As String, fileName As String, sheet As Worksheet, i As Integer, j As Integer
Dim wb As Workbook
Dim path As Worksheet
Dim row As String
Set wb = ThisWorkbook
Set path = wb.Sheets("sheet1")
row = 2
Application.ScreenUpdating = False
Application.DisplayAlerts = False
directory = path.Range("A" & CStr(row))
fileName = Dir(directory & path.Range("B" & CStr(row)))
Do While fileName <> ""
Workbooks.Open (directory & Dir(directory & path.Range("B" & CStr(row))))
row = row + 1
fileName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
子openfiles()
Dim目录为字符串,文件名为字符串,工作表为工作表,i为整数,j为整数
将wb设置为工作簿
将路径设置为工作表
将行变暗为字符串
设置wb=ThisWorkbook
设置路径=工作表(“工作表1”)
行=2
Application.ScreenUpdating=False
Application.DisplayAlerts=False
directory=path.Range(“A”和CStr(行))
fileName=Dir(目录和路径.Range(“B”和CStr(行)))
文件名“”时执行此操作
Workbooks.Open(directory&Dir(directory&path.Range(“B”)和CStr(row)))
行=行+1
fileName=Dir()
环
Application.ScreenUpdating=True
Application.DisplayAlerts=True
端接头
运行后,我会删除所有要打开的文件,以便继续执行其他宏
更新:
这是要求的屏幕截图,我可以在一列中处理目录和文件名。
试试这个: 我更喜欢使用这种简单的方法,以防我已经拥有Excel中的所有文件列表
Option Explicit
Sub openfiles()
Dim i As Long
Dim wb As Workbook
Dim path As Worksheet
Set wb = ThisWorkbook
Set path = wb.Sheets("sheet1")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For i = 2 To path.Range("A2").End(xlDown).row
If Len(Dir(path.Range("A" & i) & path.Range("B" & i))) > 0 Then
Workbooks.Open (path.Range("A" & i) & path.Range("B" & i))
End If
Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
继续您的代码: 当我必须打开特定文件夹中的所有文件或我没有文件名时,我通常采用这种方法。因为这样你可以传递一个通配符。因此,如果要打开文件夹
O:\Common\
的所有工作簿,请使用以下命令:
Sub openfiles()
Dim directory As String, fileName As String, sheet As Worksheet, i As Integer, j As Integer
Dim wb As Workbook
Dim path As Worksheet
Dim row As String
Set wb = ThisWorkbook
Set path = wb.Sheets("sheet1")
row = 2
Application.ScreenUpdating = False
Application.DisplayAlerts = False
directory = path.Range("A" & CStr(row))
fileName = Dir(directory & "*.*")
Do While fileName <> ""
Workbooks.Open (directory & fileName)
row = row + 1
fileName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
如果您的Excel工作表中有文件名,为什么要使用
Dir
?此外,您是否可以将Excel工作表的屏幕截图与数据一起粘贴?目录的末尾是否有``因为您没有使用它来创建文件名我已经在线程中添加了屏幕截图
Sub openfiles()
Dim directory As String
Dim fileName As String
Dim row As String
Set path = ThisWorkbook.Sheets("sheet1")
row = 2
Application.ScreenUpdating = False
Application.DisplayAlerts = False
directory = path.Range("A" & CStr(row))
fileName = path.Range("B" & CStr(row))
Do While fileName <> vbNullString
Workbooks.Open (directory & "\" & fileName)
row = row + 1
directory = path.Range("A" & CStr(row))
fileName = path.Range("B" & CStr(row))
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub