我目前正在为员工创建一个程序,以便根据用户输入等信息自动填充并打印出检查表。检查表创建为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无法正常工作或抛出错误的原因吗?
答案 0 :(得分:2)
Worksheets是属性,不是方法。这就是错误消息试图告诉你的内容。
该属性为您提供实现Sheets的indexer实例,在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"]
处的方括号。这些都有所不同。