ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 看见星光

[原创] 简单聊一下WPS.JS

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2024-5-5 09:32 | 显示全部楼层
function 全行数据一览无余(){

TA的精华主题

TA的得分主题

发表于 2024-5-5 09:33 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-5-5 09:44 | 显示全部楼层
function 全行数据一览无余(){
        //Range("A1")
        var ran=Application.InputBox("请选个列标题单元格:","参数设置1","","","","","",8);       
        var r=ran.Row;     //引用单元格的行号、列号、当前区域总列数、工作表名称
        var c1=ran.End(xlToLeft).Column;
        var c2=ran.CurrentRegion.Columns;
        var n=ran.Parent.Name
        Worksheets(n).Cells(r,c1).Resize(1,c2).Copy();     //复制,这句不知错在哪?执行不下去
        Sheets.Add();     //新建工作表
        Cells(2).PasteSpecial(xlPasteAll, xlPasteSpecialOperationNone, false, true);     //转置粘贴
        Cells(1).Formula = "1";
        Cells(1).AutoFill(Range("A1:A" + c2), xlFillDefault);     //填充自然数
        let rang=Application.InputBox("请选个数据单元格:","参数设置2","","","","","",8);
        Worksheets(n).Cells(rang.Row,c1).Resize(1,c2).Copy();
        Cells(3).PasteSpecial(xlPasteAll, xlPasteSpecialOperationNone, false, true);
        ActiveSheet.Usedrange.Select();
        (obj=>{
                obj.WrapText=false     //不自动换行
                obj.Interior.Pattern = xlPatternNone;     //无填充颜色
        })(Selection);
        (obj=>{
                obj.Bold = false;     //字体不加粗
                obj.ColorIndex = xlColorIndexAutomatic;     //颜色自动
        })(Selection.Font);
        (obj=>{
                obj.ColorIndex = xlColorIndexAutomatic;     //边框颜色自动,6种边框可单独设置.item()
                obj.LineStyle = xlContinuous;     //采用细边框
        })(Selection.Borders);       
        if(c2<51){
                Columns.Item("A:C").AutoFit();     //不分栏排版3列列宽正好容纳
                }
        else{
                if(Mod(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+0.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("排版完毕。")
}

TA的精华主题

TA的得分主题

发表于 2024-5-5 12:55 | 显示全部楼层
发现自己不会写代码了
var c2=ran.CurrentRegion.Columns;
少了.Count

TA的精华主题

TA的得分主题

发表于 2024-5-5 13:39 | 显示全部楼层
求助
if(Mod(c2,2)==0){}
if(Mod(c2,2)){}
if(c2 Mod 2==0){}
为什么都是错的?

TA的精华主题

TA的得分主题

发表于 2024-5-5 14:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
OKJSJSF 发表于 2024-5-5 13:39
求助
if(Mod(c2,2)==0){}
if(Mod(c2,2)){}

找到答案,要用百分号求余数。哎呀怎么是这样。

TA的精华主题

TA的得分主题

发表于 2024-5-5 22:20 | 显示全部楼层
任务完成:
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();     //新建工作表
        Cells(2).PasteSpecial(xlPasteAll, xlPasteSpecialOperationNone, false, true);     //转置粘贴
        Cells(1).Formula = "1";
        Cells(1).AutoFill(Range("A1:A" + c2), xlFillDefault);     //填充自然数
        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();
        Cells(3).PasteSpecial(xlPasteAll, xlPasteSpecialOperationNone, false, true);
        with(ActiveSheet.UsedRange){       
                WrapText=false     //不自动换行
                Interior.Pattern = xlPatternNone;     //无填充颜色
                }
        with(ActiveSheet.UsedRange.Font){
                Bold = false;     //字体不加粗
                ColorIndex = xlColorIndexAutomatic;     //字体颜色默认
                }
        with(ActiveSheet.UsedRange.Borders){
                ColorIndex = xlColorIndexAutomatic;     //边框颜色自动,6种边框可单独设置.Item()
                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("排版完毕。")
}
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-22 01:49 , Processed in 0.033982 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表