。net Excel范围地址限制

问题描述 投票:-1回答:3

我想在一个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")
excel vb.net named-ranges
3个回答
0
投票

最有可能造成此问题的原因是,您试图从复杂的多区域范围创建值数组。


0
投票

您说的正确,它尝试填充复杂的多区域范围。您可以使用以下代码重现该行为:


0
投票

我发现使用Union函数结合将地址拆分为255个字符字符串的块的方法,可以非常快地在多区域范围内填充更多内容。此功能可以很好地完成工作。该代码使用分号,因为它似乎是特定于国家/地区的分隔符(在我的情况下逗号不起作用,也许您可​​以对其进行修改)。感谢@K.Dᴀᴠɪs的提示:

© www.soinside.com 2019 - 2024. All rights reserved.