我目前正在为员工创建一个程序,以根据用户输入等自动填充并打印出包含信息的检查表。该检查表创建为excel文档,我想在文档中搜索特定的单词或短语并替换用户生成的带有变量输入的内容。

示例:用户输入房间号RM:XXX,程序将在文档中搜索词组{Room Number},并将其替换为RM:XXX。我找到了一些不适用于Visual Basic 2017的解决方案。

我用来建立分辨率的最接近的解决方案是:

 Microsoft.Office.Interop.Excel.Application replaceWord = new Microsoft.Office.Interop.Excel.Application();

 Microsoft.Office.Interop.Excel.Workbook wb = default(Microsoft.Office.Interop.Excel.Workbook);

 wb = replaceWord.Workbooks.Open("C:\\test.xlsx");

 wb.Worksheets("Sheet1").Cells.Replace(What: "{Room Number}", Replacement: "RM:XXX", LookAt: XlLookAt.xlWhole, SearchOrder: XlSearchOrder.xlByRows, MatchCase: false, SearchFormat: true, ReplaceFormat: false);


问题出在最后一行wb.Worksheets出现错误:{“不可发音的成员WorkBook.Worksheets不能像成员一样使用。”}

谁能指出我的正确方向,找出为什么wb.Worksheets无法正常工作或引发错误?

最佳答案

Worksheets是属性,而不是方法。这就是错误消息试图告诉您的内容。

该属性为您提供一个实现Sheetsindexer实例,在C#中,可以使用[]访问这些实例。您的最后一行应如下所示:

wb.Worksheets["Sheet1"]
  .Cells
  .Replace(What: "{Room Number}",
           Replacement: "RM:XXX",
           LookAt: XlLookAt.xlWhole,
           SearchOrder: XlSearchOrder.xlByRows,
           MatchCase: false,
           SearchFormat: true,
           ReplaceFormat: false);


请注意Worksheets["Sheet1"]上的方括号。这些有所作为。

10-08 01:53