您的位置:首页 > 其它

永中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

  • 点赞
  • 收藏
  • 分享
  • 文章举报
chuzhuimin8053 发布了0 篇原创文章 · 获赞 0 · 访问量 91 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: