检查表单是否存在,没有看到丢失
我使用下面的代码将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,但不会再失去它。 插入存在=空,然后到下一行解决问题。
几件事情来检查:
-
你有名为“地点”的工作表,它是一个工作表。 如果您不确定将
Worksheets("Locations")
replace为Sheets("Locations")
或确切的名称 -
这行:
If Worksheets(i).Name = Locations_Array(row, 1) Then
试图find工作表“CodeName”而不是工作表(可见)名称。 您可以在VBA编辑器名称左上方的窗格中看到代码名称,然后相应地更新Locations_Array(row, 1)
-
你应该确保在第三个代码中引用了正确的表单:wb.Sheets(1) – validationwb.Sheets(1)CodeName并确认它是你需要的