2012-08-24 73 views
6

工作表在.NET 3.5中使用C#和Visual Studio 2008,我想將焦點設置(或激活)特定的工作表中打開的工作簿:用c#在Excel中選擇

這裏有一些屬性:

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; }  

,一切都在同一類和命名空間

這裏它是如何initiliazed:

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); 

回答

2

這是我做的,它的工作原理!

Excel.Worksheet xlWorkSheetFocus = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2); 
xlWorkSheetFocus.Activate(); 
+0

這隻適用於設置.Visible = True – Denis

6

是你的屬性初始化?

如果他們,你應該能夠達到什麼樣的你是要麼那些想:

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

如果不是,你應該初始化至少xlApp屬性Application你正在使用的對象,然後使用上面的代碼。您可以使用下面的代碼初始化前兩個對象。

xlApp = new Microsoft.Office.Interop.Excel.Application(); 
Workbooks xlWorkbooks = xlApp.Workbooks; 
xlWorkbook = xlWorkbooks.Open(@"C:\filename.xlsx"); 
+0

非常感謝。你能澄清我將如何初始化? –

+0

謝謝,我已經包含了關於事物如何被初始化的信息 –

+0

所以屬性已經被初始化了。你有沒有嘗試過**下的代碼?如果他們是**? –

16

您可以使用下面的代碼:

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

sheet.Activate(); 

我已經使用這個代碼,它爲我工作得很好。

+1

這隻適用於設置.Visible = True – Denis

0

你可以做到兩者兼得:

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

  2. xlWorksheet = xlApp.Worksheets[1];

0

xlWorkSheet =(工作表)xlWorkBook.Worksheets。get_Item(2);

OR

xlWorkSheet =(作業單)xlWorkBook.Sheets [ 「SHEETNAME」];

+1

嘗試更好地設置您的答案並添加一些解釋。 – Sam