C# 如何使用C在excel中查找和替换单词/短语#
我目前正在为工作人员创建一个程序,用于自动填充和打印检查表,其中包含基于用户输入的信息等。检查表创建为excel文档,我希望搜索文档中的特定单词或短语,并用用户生成的变量输入替换 示例:用户输入房间号RM:XXX,程序将在文档中搜索短语{room number},并将其替换为RM:XXX。我发现了一些与Visual Basic 2017不兼容的解决方案 我从中得出的最接近解决方案是:C# 如何使用C在excel中查找和替换单词/短语#,c#,vba,excel,C#,Vba,Excel,我目前正在为工作人员创建一个程序,用于自动填充和打印检查表,其中包含基于用户输入的信息等。检查表创建为excel文档,我希望搜索文档中的特定单词或短语,并用用户生成的变量输入替换 示例:用户输入房间号RM:XXX,程序将在文档中搜索短语{room number},并将其替换为RM:XXX。我发现了一些与Visual Basic 2017不兼容的解决方案 我从中得出的最接近解决方案是: Microsoft.Office.Interop.Excel.Application replaceWord
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上。工作表出现错误:{“非发票成员工作簿。工作表不能像成员一样使用。”}
有人能给我指出正确的方向,让我找出wb.Worksheets不工作或抛出错误的原因吗?是一个属性,而不是一个方法。这就是错误消息试图告诉您的内容
该属性为您提供了一个实例,该实例在C语言中实现了and,可以使用[]
访问这些and。您的最后一行应该如下所示:
wb.Worksheets["Sheet1"]
.Cells
.Replace(What: "{Room Number}",
Replacement: "RM:XXX",
LookAt: XlLookAt.xlWhole,
SearchOrder: XlSearchOrder.xlByRows,
MatchCase: false,
SearchFormat: true,
ReplaceFormat: false);
请注意
工作表[“Sheet1”]
上的方括号。这些都有区别。工作表听起来像一个集合wb.Worksheets[“Sheet1”]
不是命令wb.Worksheets(“Sheet1”).Cells.Replace(What:=“{Room Number}”,我认为您缺少=@frostbyte=如果放在那里,将是一个无效的表达式。