永中Office电子表格两行或两列互换宏
2020-03-04 23:55
162 查看
/**
* 首尾两列互换
* 先将首列复制粘贴到新建的临时工作表中,再将尾列复制到首列上;
* 最后将临时工作表的列复制到尾列
*/
void ColSwap()
{
String strTempSheet = "$tmp" + java.lang.System.currentTimeMillis() + "pmt$"; //临时工作表名
Worksheets worksheets = Application.getWorkbooks().getActiveWorkbook().getWorksheets();
Worksheet sheet = worksheets.getActiveWorksheet();
maxColumn = sheet.getMaxDataColumn(); //当前表有数据的最大列范围
maxRow = sheet.getMaxDataRow(); //当前表有数据的最大行范围
Range range = sheet.getActiveRange(); //当前选中范围
startColumn = range.getStartColumn();
endColumn = range.getEndColumn();
if(startColumn == endColumn){
Application.getDialogs().showMessageDialog("只选一列无法进行两列互换哟.");
return;
}
// if(endColumn > maxColumn){
// endColumn =maxColumn;
// }
startRow = range.getStartRow();
endRow = range.getEndRow();
// if(endRow > maxRow){
// endRow = maxRow;
// }
//起始列复制粘贴到临时工作表中
range = sheet.getRange(startRow, startColumn, endRow, startColumn);
range.copy();
Worksheet tempsheet = worksheets.addWorksheet(strTempSheet);
tempsheet.activate();
range = tempsheet.getRange(startRow, startColumn, endRow, startColumn);
range.paste();
//终止列复制粘贴到起始列
sheet.activate();
range = sheet.getRange(startRow, endColumn, endRow, endColumn);
range.copy();
range = sheet.getRange(startRow, startColumn, endRow, startColumn);
range.paste();
//临时表的起始列复制粘贴到表的终止列
tempsheet.activate();
range = tempsheet.getRange(startRow, startColumn, endRow, startColumn);
range.copy();
sheet.activate();
range = sheet.getRange(startRow, endColumn, endRow, endColumn);
range.paste();
//清剪贴板,删除临时工作表
Application.getClipboard().clear();
worksheets.removeWorksheet(strTempSheet);
sheet.activate();
}
[/code]
转载于:https://my.oschina.net/u/1433826/blog/614936
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 永中Office电子表格两行或两列互换宏
- Excel两行交换及两列交换,快速互换相邻表格数据的方法
- Excel两行交换及两列交换,快速互换相邻表格数据的方法
- C# TableLayoutPanel让一个控件占两行或者两列
- 搞定永中Office电子表格中的序号
- gridview两列数据的互换
- MSSQL和MySQL中,数据表两列字段值互换的问题
- mysql互换表中两列数据方法
- gridview两列数据的互换
- mysql互换表中两列数据方法
- MSSQL和MySQL中,数据表两列字段值互换的问题
- mysql互换表中两列数据方法
- 小蚂蚁学习C语言(35)——两行三列二维数组变三行两列二维数组
- MYSQL,分别用一条语句交换两列的值与两行的值
- Android RadioGroup 横向显示(两行两列)
- mysql更两列互换新
- HTML固定列表宽度,超出部分自动隐藏,设置2倍行距,单元格占据两行、两列
- li浮动布局,两行两列,其中有合并效果
- MYSQL,分别用一条语句交换两列的值与两行的值
- mysql互换表中两列数据方法