c# - 如何使用 C# 在 excel 中突出显示数据范围?

标签 c# excel automation

我想知道是否有一种方法可以使用 C# 复制插入图表对话框功能。我需要的是显示一个弹出窗口,但更重要的是让用户选择数据范围。

我还想要用 Excel 的 colorfull 框突出显示范围。这是插入图表时 excel 如何突出显示范围的图像。我希望能够从我的 C# 加载项中获取这些框。

Excel range highlighting http://img696.imageshack.us/img696/5290/excel.png

最佳答案

在 VBA 中,有一个 RefEdit 控件可以让您执行此操作,这里有关于如何使用它的详细演练:How to Use the RefEdit Control with a UserForm .

不幸的是,没有内置控件可以让您在 C# 中执行此操作。您可以使用 VBA 作为前端——我非常怀疑您是否愿意这样做——或者您可以使用 C# 创建等效的 RefEdit 控件。这里有一篇关于如何执行此操作的文章以及功能齐全的 C# 代码示例:How to Code a RefEdit control作者:Gabhan Berry。

根据 zzandy 的评论更新:

"Actually the question is on how to highlight selected ranges, not on how to select range. The InputBox (csharp-examples.net/inputbox) is available from C# and allows to select ranges."

无法使范围以多种颜色突出显示。这种突出显示仅在 Excel 中在工作表上创建公式时出现,而不是在出于任何其他目的选择范围时出现。创建它的唯一方法需要大量的子类化或 Hook ,我不推荐它。

然而,一些解决方案将允许您至少在选择周围有一个选框带(又名“行进的 Ant ”)。如果你使用 VBA 作为前端,你可以使用内置的 RefEdit control ,我在上面提到过,它确实将选取框带放在了所选范围内。

The C# example I gave, above将允许您在 C# 窗体中使用类似 RefEdit 的控件,但在进行选择时它不会包括选取框 - 它只会在正常选择范围时使用标准外观。

如果您愿意使用简单的输入框解决方案,而不是表单上的控件,那么 C# example you gave会起作用(如果您使用 Form.Show() 但 Form.ShowDialog()),但它不会显示任何特殊选取框带或其他突出显示。对于确实使用选取框选择的简单输入框,您可以使用 Excel.Application.InputBox方法,为 'Type' 传入一个值 '8',这表明 'InputBox' 方法返回的值应该是 'Excel.Range' 数据类型:

Excel.Application excelApp = ...;

string prompt = "Please select the range.";
string title = "Input Range";
int returnDataType = 8;
String DefaultRange = oXL.Selection.Address();

Excel.Range myRange = excelApp.InputBox(
                          prompt,
                          title,
                          DefaultRange,
                          Type.Missing,
                          Type.Missing,
                          Type.Missing,
                          Type.Missing,
                          returnDataType)

希望这有助于...

迈克

关于c# - 如何使用 C# 在 excel 中突出显示数据范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1907698/

相关文章:

c# - 如何使用 C# 在 Ubuntu 上获取 GPU 信息?

c# - 该进程无法访问该文件,因为它正被另一个进程使用(文件已创建但不包含任何内容)

c# - 如何使用 mono.cecil 添加没有默认构造函数的自定义属性

Excel嵌套IF语句

r - 计算 R 和 excel 中的唯一值

java - Selenium Java 中的 fluidwait

python /批处理 : Use Python to press any key to continue

c# - Azure 计划 Web 作业设置

vba - 如何保存为 excel 和 vba 项目以备将来使用?

javascript - 自动化 VBA 加载 IE 并在登录屏幕上输入凭据