我有一个每天/每周都会得到的文件。首先我测试文件是否在目录中可用,如果不是,那么我转到“ 数据跟踪器 ”并使范围B2的值“缺少< / em>“在那张表中。我正在接受
运行时错误1004
在该部分。请帮忙。
如果该文件可用,那么我需要复制打开工作簿的 B2 ,如果列A已经有,我需要将其粘贴到我的宏书 A列中然后它将粘贴到我的宏书的A列中的下一个可用/空单元格/行中。该部分也可能是错误的,希望专家可以提供帮助。
Application.AskToUpdateLinks = False
Application.ScreenUpdating = False
Dim FilePath As String
Dim TestStr As String
Dim WBA As Workbook 'Opened Workbook
FilePath = "C:\Users\anthonyer\Documents\Automation VBA\Source\Comcast Secondary"
TestStr = ""
On Error Resume Next
TestStr = Dir(FilePath)
On Error GoTo 0
If TestStr = "" Then
Workbooks("FullAuto Final.xlsm").Activate
Worksheets("Data Tracker").Range("B2").Select
Selection.Value = "Missing"
Else
Workbooks.Open "C:\Users\anthonyer\Documents\Automation VBA\Source\Comcast Secondary"
Set WBA = ActiveWorkbook
WBA.Application.CutCopyMode = False
'Select and Copy Site Name
WBA.Sheets(1).Range("B2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy Destination:=ThisWorkbook.Worksheets(1).Range("A:A" & Cells(Rows.Count, "A:A").End(xlUp).Row)
WBA.Close SaveChanges:=False
ThisWorkbook.Activate
Worksheets("Data Tracker").Range("A2").Value = "Complete"
End If
Application.AskToUpdateLinks = True
Application.ScreenUpdating = True
End Sub
答案 0 :(得分:1)
尝试以下编辑过的代码:
getItemId' of type
答案 1 :(得分:0)
FilePath = "C:\Users\anthonyer\Documents\Automation VBA\Source\Comcast Secondary"
TestStr = ""
On Error Resume Next
TestStr = Dir(FilePath)
On Error GoTo 0
此错误句柄的工作方式如下:如果TestStr = Dir(FilePath)出错,请忽略它并继续执行代码。 正确的错误处理工作如下:
FilePath = "C:\Users\anthonyer\Documents\Automation VBA\Source\Comcast Secondary"
TestStr = ""
On Error GoTo ErrHandler
TestStr = Dir(FilePath)
On Error GoTo 0
'Code if no Error occurs
Exit Sub
ErrHandler:
'Code if Error occurs.
Resume Next 'if you want to return to the code
End Sub
但是测试错误处理程序是否存在错误是相当丑陋的。您可以使用FileSystemObject库来测试该文件。为此,您需要先激活它。转到工具 - &gt;参考并检查Microsoft Scripting Runtime。
检查文件。这个库中有一个简洁的方法:
Dim fsoFile as Scripting.FileSystemObject
Set fsoFile = New Scripting.FileSystemObject 'Instancing
If Not fsoFile.FileExists("C:\Users\anthonyer\Documents\Automation VBA\Source\Comcast Secondary") Then
现在,您的运行时错误最常由Worksheets(“Data Tracker”)生成,因为Sheet名称中不能有任何空格。此外,在VBA中,从不需要选择单元格。继续这样:
Workbooks("FullAuto Final.xlsm").Worksheets("DataTracker").Range("B2").Value = "Missing"
Else
'Do other stuff if the file exists
End if
End sub