首页 新闻 会员 周边 捐助

很急,在线等!!!c#代码模拟Excel宏代码格式刷。报:Range类的PasteSpecial方法无效?

0
悬赏园豆:50 [待解决问题]

Excel文件有两个工作簿,sheet和shee1,在sheet里,我合并了五个单元格,想做到类似Excel里【格式刷】工具将这个合并的单元格效果运用到sheet1表格里的某个范围里的单元格。

下面是代码:

这是用c#模拟vb写的代码

语梦·添香的主页 语梦·添香 | 初学一级 | 园豆:64
提问于:2023-07-16 12:19

网上找了各种解决方法:大都是说,复制以及粘贴前都要选中或者激活worksheet,照着做,还是报错:Rang类的PasteSpecial方法无效

语梦·添香 1年前
< >
分享
所有回答(1)
0

要在C#中模拟Excel的宏代码格式刷操作,可以使用Copy和PasteSpecial方法来实现。以下是一个示例代码,展示了如何将一个工作表中的合并单元格格式刷到另一个工作表的范围内:

csharp
Copy code
using Excel = Microsoft.Office.Interop.Excel;

// 创建Excel应用程序对象
Excel.Application excelApp = new Excel.Application();

// 打开Excel文件
Excel.Workbook workbook = excelApp.Workbooks.Open("YourFilePath.xlsx");

// 获取源工作表和目标工作表
Excel.Worksheet sourceSheet = workbook.Sheets["Sheet"];
Excel.Worksheet targetSheet = workbook.Sheets["Sheet1"];

// 源合并单元格的范围
Excel.Range sourceRange = sourceSheet.Range["A1:E1"];

// 目标范围
Excel.Range targetRange = targetSheet.Range["A1:E5"];

// 将源合并单元格的格式刷到目标范围
sourceRange.Copy();
targetRange.PasteSpecial(Excel.XlPasteType.xlPasteFormats);

// 关闭Excel应用程序并释放资源
workbook.Close();
excelApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
请确保您已经添加了对Microsoft.Office.Interop.Excel的引用,并且将文件路径替换为您的实际文件路径。

这段代码会将源工作表中的合并单元格格式刷到目标工作表的指定范围内。如果您遇到任何问题,请确保您的Excel文件正确,并且您的操作权限足够进行复制和粘贴操作。

希望这个代码对您有帮助。如果您有任何进一步的问题,请随时提问。

Technologyforgood | 园豆:7541 (大侠五级) | 2023-07-17 22:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册