【发布时间】:2021-09-06 23:25:00
【问题描述】:
我有以下代码,它从共享位置获取一个 XML 文件并将其加载到 Excel 中。打开文件后,我会收到“运行时错误'1004':应用程序定义或对象定义错误”消息。
Sub Load_XML()
Dim xml_file_path As String
Dim file_date As String
Worksheets("Start").Activate
file_date = Range("B1").Value
xml_file_path = "Y:\mydrive\" & file_date & "-000000_RREP1002.XML"
Workbooks.OpenXML Filename:= _
xml_file_path _
, LoadOption:=xlXmlLoadImportToList
Dim lstrow as Integer
Dim r as Range
lstrow = ActiveSheet.UsedRange.Rows.Count
Set r = Range("A2:AF & lstrow")
执行最后一行之前的代码错误,即 OpenXML 完成后。
请问有什么想法会导致这个问题吗?
谢谢!
【问题讨论】:
-
阅读How to avoid using Select in Excel VBA可能会让您受益。
-
嗨,对不起,我很抱歉,但我不确定如何避免此处的 Select 功能,因为我需要选择一个我不知道它有多少行的数据范围(它改变了一天当天)所以我这样做的方式是选择第一行,然后使用 XlDown 命令。如果我将范围声明为变量,我是否不必以某种方式确定数据集中有多少行?
-
谢谢,我已更新我的代码以将最后一行修改为以下内容,但我仍然收到相同的错误: lstrow = ActiveSheet.UsedRange.Rows.Count Set r = Range("A2:AF & lstrow")
-
另请注意,Excel 的行数超过了
Integer的行数。因此,您需要将行计数变量声明为Long,例如:Dim lstrow As Long。最后Range("A2:AF & lstrow")需要是Range("A2:AF" & lstrow)变量需要在字符串之外。