|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
只粘贴值与数字格式,减少了单元格底纹与字体等设置,代码继续简化,如下:
function 全行数据一览无余(){
while(!rang){
var ran=Application.InputBox("请选个列标题单元格:","参数设置1","","","","","",8); //输入对话框
if(!ran){
return; //退出过程
}
var rang=Intersect(ran,ran.Parent.UsedRange); //是否选择了有效区域
if(!rang){
MsgBox("无效选择。",jsQuestion,"金山提醒:"); //输出对话框
}
}
var r=ran.Row; //引用单元格的行号、列号、当前区域总列数、工作表名称
var c1=ran.End(xlToLeft).Column;
var c2=ran.CurrentRegion.Columns.Count;
var n=ran.Parent.Name;
Worksheets(n).Cells(r,c1).Resize(1,c2).Copy(); //复制
Sheets.Add(); //新建工作表
var n2=ActiveSheet.Name
Cells(2).PasteSpecial(xlPasteValuesAndNumberFormats, xlPasteSpecialOperationNone, false, true); //转置粘贴值与数字格式
Cells(1).Formula = "1";
Cells(1).AutoFill(Range("A1:A" + c2), xlFillDefault); //填充自然数
Worksheets(n).Select();
while(!rang2){
var ran2=Application.InputBox("请选个数据单元格:","参数设置2","","","","","",8);
if(!ran2){
return;
}
var rang2=Intersect(ran2,ran2.Parent.UsedRange);
if(!rang2){
MsgBox("无效选择。",jsQuestion,"金山提醒:");
}
}
Worksheets(n).Cells(ran2.Row,c1).Resize(1,c2).Copy();
Worksheets(n2).Select();
Cells(3).PasteSpecial(xlPasteValuesAndNumberFormats, xlPasteSpecialOperationNone, false, true);
ActiveSheet.UsedRange.Borders.LineStyle = xlContinuous; //先添加细边框
if(c2<51){
Columns.Item("A:C").AutoFit(); //不分栏排版,3列列宽自动
}
else{
if(c2%2==0){ //哎呀,余数是这么求的!函数放着不用靠边站了
Cells(c2/2+1,1).Resize(c2/2,3).Cut(); //剪切
Cells(4).Select();
ActiveSheet.Paste(); //回车粘贴法
Cells(1).Resize(c2/2,3).Borders.Item(xlEdgeRight).LineStyle = xlDouble; //分栏的边框线采用双线
}
else{
Cells(c2/2+1.5,1).Resize(c2/2+0.5,3).Cut();
Cells(4).Select();
ActiveSheet.Paste();
Cells(1).Resize(c2/2+0.5,3).Borders.Item(xlEdgeRight).LineStyle = xlDouble;
}
Columns.Item("A:F").AutoFit();
}
Range("G1").Select();
MsgBox("排版完毕。")
} |
|