【问题标题】:Carrying out Excel Application actions on an Excel Worksheet object对 Excel 工作表对象执行 Excel 应用程序操作
【发布时间】:2013-12-23 19:51:32
【问题描述】:

我有一个 C# 应用程序正在创建和使用 Excel 电子表格。我独立处理电子表格并记录了一个宏,以查看生成的代码是什么样子。现在当然这是在 VB 中生成的。为了将代码转换为 C#,我依赖于以下tutorial。现在的问题是,在我的应用程序类中,我正在操作一个单独的工作表:

private Worksheet vstoSheet

正在其他地方使用。本教程使我能够从原始 VB 代码生成 C#,但执行基于 Application 对象的操作:

转换为 C# 后的宏代码开头:

var excelApp = new Microsoft.Office.Interop.Excel.Application();
excelApp.Workbooks.Add();

excelApp.Rows["1:1"].Select();
excelApp.Selection.Insert(Shift: XlDirection.xlDown, CopyOrigin: XlInsertFormatOrigin.xlFormatFromLeftOrAbove);
excelApp.ActiveWindow.LargeScroll(ToRight: 1);
excelApp.Range["A1:L1"].Select();

我的问题是如何将所有这些与我的 Worksheet 对象联系起来?目前我正在对这个新的 Application 对象执行所有操作,但我需要在我的 Worksheet 对象上执行它们。不幸的是,像“选择”这样的方法在 Worksheet 对象上不可用。有什么方法可以将一个转换回另一个?

【问题讨论】:

    标签: c# winforms excel vba


    【解决方案1】:

    我不确定这是否是您正在寻找的,但这是我在 VBA 中会做的:

    Range("A1").EntireRow.Insert
    

    刚刚做了一些测试,这也适用于 VBA

    Rows(1).Insert
    

    所以我大胆猜测这会起作用。

    excelApp.Range("A1").EntireRow.Insert
    

    很多时候,您可以组合以.Select 结尾并以Selection. 开头的两行代码

    【讨论】:

    • 我正在尝试执行与我在上面的 excelApp 对象上执行的相同操作,而不是在 vstoSheet 对象上执行的操作。换句话说,我想在 Worksheet 对象上执行 Application 对象的方法。 VB 并没有真正参与其中,只是代码最初来自那里。
    • 我的错,我想念你当时的问题。我以为你说当你将 Select 和 Selection 转移到 C# 时它不起作用,你需要一种方法来组合这些方法。
    猜你喜欢
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 2014-08-13
    • 2016-08-14
    • 2019-01-13
    相关资源
    最近更新 更多