2014-10-22 1 views
0

Я разработал Addin в Excel. В этом дополнении есть лента, содержащая кнопку. Когда эта кнопка нажата, я создаю новую рабочую книгу и рабочий лист на основе строки xml, которая извлекается из базы данных на основе учетных данных пользователя. Iam, способный создать книгу вместе с рабочими листами, однако эта рабочая книга не отображается в качестве основной рабочей книги для пользователя.Как открыть недавно созданный Excel WOrkBook в качестве активной рабочей книги

То, что я хотел бы получить, - это то, что при нажатии на книгу Excel рабочая книга становится активной, а старая рабочая книга Excel выглядит визуально, так что внимание пользователей теперь сосредоточено на создал рабочий лист вместо того, чтобы искать созданную рабочую книгу.

Вот код, который я использовал, но это не похоже на работу: Ps: Iam с помощью Excel 2013 и VS 2013 и C#

var excel = Globals.ThisAddIn.Application; 
Microsoft.Office.Interop.Excel.Workbook newWorkBook = null; 
newWorkBook = Globals.ThisAddIn.Application.Workbooks.Add(); 
#region BringGeneratedWorkBookToFront 
string newWorkBookName = newWorkBook.Name; 
foreach (Workbook wb in excel.Workbooks){ 
    if (wb.Name == newWorkBookName) { 
     wb.Activate(); 
     break; 
    } 
} 
#endregion 
+0

В вашем коде вы просматриваете все книги и активируете их. Вы должны опубликовать код, который создает рабочую книгу и обработчик события click – Sorceri

+0

Привет, Я проверяю рабочую книгу на основе имени и только тогда, когда есть совпадение имени, я активирую. – Anand

+0

Это код: var excel = Globals.ThisAddIn.Application; Microsoft.Office.Interop.Excel.Workbook newWorkBook = null; newWorkBook = Globals.ThisAddIn.Application.Workbooks.Add(); #region BringGeneratedWorkBookToFront string newWorkBookName = newWorkBook.Name; foreach (Workbook wb in excel.Workbooks) { if (wb.Name == newWorkBookName) { wb.Activate(); break; } } #endregion – Anand

ответ

0

Вот ваш код упрощен:

Excel.Workbook newWorkBook =Globals.ThisAddIn.Application.Workbooks.Add(); 
newWorkBook.Activate(); 
+0

Привет, Используя этот код, вы не добавили вновь созданный excel на передний план. рабочая книга excel, из которой была вызвана добавка, все еще остается в фокусе, то, что я хочу добиться, заключается в том, что недавно созданная рабочая книга excel находится в фокусе. – Anand

+0

@Anand. Используете ли вы Addin Addin или Add Level Addin Level?
Кроме того, что касается настройки видимости рабочей книги на true, например: newWorkBook.Windows [1] .Visible = true; –