Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用C在excel中查找和替换单词/短语#_C#_Vba_Excel - Fatal编程技术网

C# 如何使用C在excel中查找和替换单词/短语#

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

我目前正在为工作人员创建一个程序,用于自动填充和打印检查表,其中包含基于用户输入的信息等。检查表创建为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上。工作表出现错误:{“非发票成员工作簿。工作表不能像成员一样使用。”}

有人能给我指出正确的方向,让我找出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=如果放在那里,将是一个无效的表达式。