11

Visual Studio 2008 で .NET 3.5 の C# を使用して、開いているブックの特定のワークシートにフォーカスを設定 (またはアクティブ化) しようとしています。

以下にいくつかのプロパティを示します。

public Excel.Application xlApp {get;set;}
public Excel.Workbook xlWorkBook { get; set; }
public Excel.Worksheet xlWorkSheet { get; set; }
public Excel.Range range { get; set; }        

そして、特定のワークシートを選択しようとしている方法は次のとおりです。

(xlWorkSheet)Application.ActiveWorkbook.Sheets[FormControls.WorksheetFocus]).Select(Type.Missing);

そして、私はこの方法も試しました:

((Excel.Worksheet)this.Application.ActiveWorkbook.Sheets[1]).Select();

私は何を間違っていますか?C# を使用してブック内の特定のワークシートを選択するにはどうすればよいですか?


定義がどこにあるかの説明:

namespace EmailSalesVolumeSolution
{
    class WorkBook
    {
        public string MasterFileName { get; set; }
        public string[] DistinctEmails { get; set; }
        public Excel.Application xlApp {get;set;}
        public Excel.Workbook xlWorkBook { get; set; }
        public Excel.Worksheet xlWorkSheet { get; set; }
        public Excel.Range range { get; set; }    

すべてが同じクラスと名前空間にあります

初期化方法は次のとおりです。

private void OpenWorkBook()
{
    string str;
    int rCnt = 0;
    int cCnt = 0;


    xlApp = new Excel.ApplicationClass();
    xlWorkBook = xlApp.Workbooks.Open(MasterFileName, 0, true, 5, "", "", true,
        Microsoft.Office.Interop.Excel.XlPlatform.xlWindows,
        "\t", false, false, 0, true, 1, 0);
    xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(FormControls.WorksheetEmails);
4

5 に答える 5

23

次のコードを使用できます。

Worksheet sheet = (Worksheet)xlApp.Worksheets[1];
sheet.Select(Type.Missing);

また

sheet.Activate();

私はこのコードを使用しましたが、問題なく動作します。

于 2013-02-25T06:39:38.123 に答える
7

プロパティは初期化されていますか?

それらがである場合、おそらくそれらのいずれかによって、あなたがしようとしていることを達成できるはずです:

xlApp.ActiveWorkbook.Sheets[1].Activate();
xlWorkbook.Sheets[1].Activate();
xlSheet.Activate();

そうでない場合は、少なくともxlAppプロパティをApplication使用しているオブジェクトに初期化してから、上記のコードを使用する必要があります。以下のコードを使用して、最初の 2 つのオブジェクトを初期化できます。

xlApp = new Microsoft.Office.Interop.Excel.Application();
Workbooks xlWorkbooks = xlApp.Workbooks;
xlWorkbook = xlWorkbooks.Open(@"C:\filename.xlsx");
于 2012-08-24T20:33:19.943 に答える
7

これが私がやったことで、うまくいきます!

Excel.Worksheet xlWorkSheetFocus = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2);
xlWorkSheetFocus.Activate();
于 2012-08-24T20:55:19.903 に答える
0

両方の方法で実行できます。

Excel.Application xlApp;
Excel.Worksheet xlWorksheet;
  1. xlWorksheet = xlApp.Worksheets.get_Item(1);

  2. xlWorksheet = xlApp.Worksheets[1];

于 2014-10-27T10:40:00.003 に答える