问题描述
我一直试图找出我下面的代码有什么问题,但到目前为止没有成功。 我的简单任务是使用 VSTO / VB.NET 隐藏多个 Excel 列。
这有效:
Dim app As Excel.Application = Globals.ThisAddIn.Application
Dim act_sheet As Excel.Worksheet = app.ActiveSheet
act_sheet.Range("A:A").EntireColumn.Hidden = True
act_sheet.Range("B:B").EntireColumn.Hidden = True
这不起作用:
Dim app As Excel.Application = Globals.ThisAddIn.Application
Dim act_sheet As Excel.Worksheet = app.ActiveSheet
Dim base_hide As New List(Of String)({"A:A","B:B"})
base_hide.ForEach(Function(x) act_sheet.Range(x).EntireColumn.Hidden = True)
谢谢,
解决方法
找到导致问题的原因。使用 Function() 作为 lambda 运行 ForEach 循环会期望返回一些东西。我在函数中的代码永远不会运行。将其更改为 Sub() 可按预期工作。
base_hide.ForEach(Sub(x) act_sheet.Range(x).EntireColumn.Hidden = True)