怎么用JS宏把多个工作表合到一个工作表里 除了第一个表其他的表的表头不要合进去。工作表里的图片可以一起随着合并吗
时间: 2023-07-28 08:10:34 浏览: 198
可以使用以下的WPS JS宏代码来实现你的需求:
```
// 获取当前活动的工作簿
var workbook = WPS.Application.ActiveWorkbook;
// 获取第一个工作表中的数据范围
var dataRange = workbook.Sheets(1).UsedRange;
// 获取第一个工作表中的行数和列数
var dataRows = dataRange.Rows.Count;
var dataColumns = dataRange.Columns.Count;
// 创建新的工作表
var newSheet = workbook.Sheets.Add();
// 将第一个工作表的数据复制到新的工作表中
dataRange.Copy(newSheet.Range("A1"));
// 遍历除第一个表以外的所有工作表
for(var i = 2; i <= workbook.Sheets.Count; i++) {
// 获取当前工作表中的数据范围
var currentDataRange = workbook.Sheets(i).UsedRange;
// 获取当前工作表中的行数和列数
var currentDataRows = currentDataRange.Rows.Count;
var currentDataColumns = currentDataRange.Columns.Count;
// 将当前工作表中的数据复制到新的工作表中
currentDataRange.Copy(newSheet.Cells(dataRows + 2, 1));
// 更新新的工作表中的行数
dataRows += currentDataRows - 1;
}
// 将新工作表中的所有图片复制到第一个工作表中
for(var j = 1; j <= newSheet.Shapes.Count; j++) {
var currentShape = newSheet.Shapes(j);
if(currentShape.Type == 13) {
// 复制图片到第一个工作表中
currentShape.Copy();
workbook.Sheets(1).Activate();
var currentRange = workbook.Sheets(1).Range("A" + (dataRows + 1));
currentRange.Select();
workbook.ActiveSheet.Paste();
// 更新行数
dataRows += 1;
}
}
```
这段代码将会遍历当前工作簿中除第一个表以外的所有工作表,将这些工作表中的数据复制到一个新的工作表中,并将新工作表中的所有图片复制到第一个工作表中。在复制数据时,除第一个表以外的其他表的表头不会被复制到新工作表中。在复制图片时,所有图片都会被复制到第一个工作表中,并且图片的位置会与原来的位置一致。
阅读全文