检查表单是否存在,没有看到丢失

我使用下面的代码将xml数据从Google Maps API导入到Excel中,以便快速获取Lat和Lng以获取位置列表。 我有它的工作,但由于我的请求速度,它跳过了一些。 我删除了这些工作表,并实施了一些代码来检查工作表是否存在(第二和第四段代码)。 然而,我不能正确地工作,因为它不承认由于某种原因不存在的表。 有人能告诉我我犯的错误吗?

Sub Import_Xml() Dim row As Integer Dim strTargetFile As String Dim wb As Workbook Call Fill_Array_Locations TotalRowsData = ThisWorkbook.Worksheets("Locations").UsedRange.Rows.Count For row = 50 To TotalRowsData Application.ScreenUpdating = False 

  For i = 1 To Worksheets.Count If Worksheets(i).Name = Locations_Array(row, 1) Then exists = True End If Next i If Not exists Then 

  Sheets.Add.Name = Locations_Array(row, 1) strTargetFile = "https://maps.googleapis.com/maps/api/geocode/xml?address=" & Locations_Array(row, 2) & " " & Locations_Array(row, 3) & "&components=country:" & Locations_Array(row, 4) & "&key=********" Set wb = Workbooks.OpenXML(Filename:=strTargetFile, LoadOption:=xlXmlLoadImportToList) Application.Wait (Now + TimeValue("0:00:01")) wb.Sheets(1).UsedRange.Copy ThisWorkbook.Sheets(Locations_Array(row, 1)).Range("A1") wb.Close False 

  End If 

 Next row Application.ScreenUpdating = True End Sub 

 exists = Empty Next row Application.ScreenUpdating = True End Sub 

一旦第一行已经完成存在将有值TRUE,但不会再失去它。 插入存在=空,然后到下一行解决问题。

几件事情来检查:

  1. 你有名为“地点”的工作表,它是一个工作表。 如果您不确定将Worksheets("Locations")replace为Sheets("Locations")或确切的名称

  2. 这行: If Worksheets(i).Name = Locations_Array(row, 1) Then试图find工作表“CodeName”而不是工作表(可见)名称。 您可以在VBA编辑器名称左上方的窗格中看到代码名称,然后相应地更新Locations_Array(row, 1)

  3. 你应该确保在第三个代码中引用了正确的表单:wb.Sheets(1) – validationwb.Sheets(1)CodeName并确认它是你需要的