我想在一个Excel.Range
对象中定义多个区域。目的是通过设置一个范围来给多个不同的区域着色。这将节省使用Excel互操作的时间,这种操作在这种操作中非常慢。问题是,当我尝试将“大”地址线放入范围时,出现错误(HRESULT: 0x800A03EC
)。有人可以告诉我使用Excel互操作是否有限制,有人可以快速/快速地对许多区域进行着色吗?
示例中的“大”地址行只是为了向您显示问题所在。我知道将A1:A2
多次放入地址中没有多大意义。
Dim objExcelApp As New Excel.Application
objExcelApp.Visible = True
Dim objExcelWorkbooks As Excel.Workbooks = objExcelApp.Workbooks
Dim objExcelWB As Excel.Workbook = objExcelWorkbooks.Add
Dim objExcelWS As Excel.Worksheet = objExcelWB.Worksheets(1)
Dim rng As Excel.Range
rng = objExcelWS.Range("A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2;A1:A2")
最有可能造成此问题的原因是,您试图从复杂的多区域范围创建值数组。
您说的正确,它尝试填充复杂的多区域范围。您可以使用以下代码重现该行为:
我发现使用Union函数结合将地址拆分为255个字符字符串的块的方法,可以非常快地在多区域范围内填充更多内容。此功能可以很好地完成工作。该代码使用分号,因为它似乎是特定于国家/地区的分隔符(在我的情况下逗号不起作用,也许您可以对其进行修改)。感谢@K.Dᴀᴠɪs的提示: