【发布时间】:2020-07-03 01:03:20
【问题描述】:
我正在尝试使用 INTEROP 按 Excel 中的第一列对工作表进行排序。
我只想对第一列的整个范围进行简单排序。我正在执行以下操作:
valueRange.Sort(valueRange.Columns[7, Type.Missing], Excel.XlSortOrder.xlAscending, valueRange.Columns[7, Type.Missing],
Type.Missing, Excel.XlSortOrder.xlAscending, Type.Missing, Excel.XlSortOrder.xlAscending,
Excel.XlYesNoGuess.xlNo, Type.Missing, Type.Missing, Excel.XlSortOrientation.xlSortColumns,
Excel.XlSortMethod.xlPinYin, Excel.XlSortDataOption.xlSortNormal,
Excel.XlSortDataOption.xlSortNormal, Excel.XlSortDataOption.xlSortNormal);
但出现错误。我无法找到有关如何进行此排序的适当文档。
有人可以给我一个按特定列对指定范围进行简单排序的工作示例吗?
根据文档,我尝试这样做:
valueRange.Sort(valueRange.Columns[7, Type.Missing],
Excel.XlSortOrder.xlAscending,
Type.Missing,
Type.Missing,
Excel.XlSortOrder.xlAscending,
Type.Missing,
Excel.XlSortOrder.xlAscending,
Excel.XlYesNoGuess.xlNo,
Type.Missing,
Type.Missing,
Excel.XlSortOrientation.xlSortColumns,
Excel.XlSortMethod.xlStroke,
Excel.XlSortDataOption.xlSortNormal,
Excel.XlSortDataOption.xlSortNormal,
Excel.XlSortDataOption.xlSortNormal);
但是现在我收到了错误:
{“排序参考无效。请确保它在您要排序的数据内,并且第一个排序依据框不是相同或空白。”}
【问题讨论】:
-
你可以用宏记录器在excel中录制宏并将vba转换为c#
-
您遇到什么错误?您可能会说,Interop 的麻烦之一是必须将看似无穷无尽的参数传递给各种函数。有很多错误的余地。
-
@andrew 不确定如何将 vba 转换为 c#
-
您的总体目标是什么?如果您只想使用 .NET 中的数据,将其加载到 DataTable 并在那里使用它可能更容易,而不是通过 Excel 互操作。