在 VSTO 中的 Excel get_Range 中使用的正确分隔符

Gay*_*ake 5 c# excel vsto cultureinfo

在用 C# 编写的 Excel VSTO 项目中,我需要从单元格字符串列表中获取 Range 对象。

这是问题的简化版本:

string strRange = "A1:A2,A5";
Excel.Range r = sheet.get_Range(strRange);
Run Code Online (Sandbox Code Playgroud)

然而,由于列表分隔符在不同的区域性设置中可能与逗号不同,所以我实际上使用的是:

listSep = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator;
string strRange = "A1:A2" + listSep + "A5";
Excel.Range r = sheet.get_Range(strRange);
Run Code Online (Sandbox Code Playgroud)

我的问题是,当用户在 Excel 选项 > 高级(Application.DecimalSeparator)中更改“小数分隔符”以匹配 ListSeparator 时,这将不起作用。

使用指定范围的字符串调用 get_Range 的正确方法是什么?

编辑:稍加修改以添加我下面评论的信息。

Joe*_*Joe 0

您可以考虑使用该Application.Union方法来构建您的范围。像(未经测试)的东西:

Application.Union(sheet.get_Range("A1:A2"), sheet.get_Range("A5"));
Run Code Online (Sandbox Code Playgroud)