ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 跟我学JavaScript in WPS

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2024-5-21 08:07 | 显示全部楼层
OKJSJSF 发表于 2024-5-21 00:11
var arr=["","b",3,"d"];
        var brr=[1,2,3,4];
        alert(Array.isArray(arr));

        var arr=["","b",3,"d"];
        var brr=[1,2,3,4];
        var crr=[];     //没有这句不行
        crr.push(arr,brr);     //这句与下一句并成一句不行               
        Range("a1:d2").Value2=crr;
        alert(Array.isArray(crr));
        alert(Array.isArray(arr));
        alert(Array.isArray(brr));
        alert(Array.isArray(crr.push.apply(arr,brr)));
        alert(Array.isArray(Array.prototype.push.apply(arr,brr)));
终于行了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-21 14:37 | 显示全部楼层
OKJSJSF 发表于 2024-5-20 23:23
var arr=[1,2,3,4];
        var crr=["","b",3,"d"];
        Range("a1:d2").Value2=[arr,crr];

你要规范使用,不是你想怎么用就怎么用的。。。基础打牢点,,,

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-21 14:39 | 显示全部楼层
我还回了一条,怎么没有放出来,昨天回的,有代码的

TA的精华主题

TA的得分主题

发表于 2024-5-21 19:49 | 显示全部楼层
ctp_119 发表于 2024-5-21 14:37
你要规范使用,不是你想怎么用就怎么用的。。。基础打牢点,,,

版主很快发现我的缺点了。我是用什么学什么,技术不全面。

TA的精华主题

TA的得分主题

发表于 2024-5-21 22:21 | 显示全部楼层
OKJSJSF 发表于 2024-5-18 10:06
列宽自动适应的代码作修改,又简化了一点。数组的方法还没试。完整代码如下:
function 全行数据一览无 ...

在使用过程中又发现不足,再作改进。
function 全行数据一览无余(){
        while(!rang1){
                var ran1=Application.InputBox("请选择“第一个”打印区域列标题单元格:","参数设置1","","","","","",8);     //输入对话框,用户数据表可能不规范,本程序选择其中一种进行排版       
                if(!ran1){
                        return;     //退出过程
                        }       
                var rang1=Intersect(ran1,ran1.Parent.UsedRange);     //是否选择了有效区域
                if(!rang1){
                        MsgBox("无效选择。",jsQuestion,"金山提醒:");     //输出对话框       
                        }                       
                }                               
        var n1=ran1.Parent.Name;
        var r=ran1.Row;     //引用单元格的行号、列号、当前区域总列数、工作表名称
        var c1=ran1.Column;
        var c2=ran1.End(xlToRight).Column-c1+1;
        with(Worksheets(n1).Cells(r,c1).Resize(1,c2)){
                EntireColumn.Hidden=false;     //单元格所在列不隐藏,否则不会被复制
                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(n1).Activate();
        while(!rang2){
                var ran2=Application.InputBox("请选个数据单元格:","参数设置2","","","","","",8);       
                if(!ran2){
                        return;
                        }       
                var rang2=Intersect(ran2,ActiveSheet.UsedRange);
                if(!rang2){
                        MsgBox("无效选择。",jsQuestion,"金山提醒:");       
                        }                       
                }
        Application.ScreenUpdating=false     //这语句不要也行,因为速度足够快,感觉不到屏闪了。       
        Cells(ran2.Row,c1).Resize(1,c2).Copy();
        Worksheets(n2).Activate();
        Cells(3).PasteSpecial(xlPasteValuesAndNumberFormats, xlPasteSpecialOperationNone, false, true);
        ActiveSheet.UsedRange.Borders.LineStyle = xlContinuous;     //先添加细边框       
        Cells(4).Select();
        if(c2>50){     //50列以上才分栏
                if(c2%2==0){     //哎呀,余数是这么求的!函数放着不用靠边站了
                        Cells(c2/2+1,1).Resize(c2/2,3).Cut();     //剪切
                        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();   
                        ActiveSheet.Paste();     
                        Cells(1).Resize(c2/2+0.5,3).Borders.Item(xlEdgeRight).LineStyle = xlDouble;                                                                            
                        }
                Cells(1).CurrentRegion.Columns.AutoFit();     //列宽自动适应
                Cells(7).Select();                  
                }
        Application.ScreenUpdating=true
        alert("排版完毕。")
}

TA的精华主题

TA的得分主题

发表于 2024-5-21 22:55 | 显示全部楼层
OKJSJSF 发表于 2024-5-21 08:07
var arr=["","b",3,"d"];
        var brr=[1,2,3,4];
        var crr=[];     //没有这句不行

改成单元格区域赋值给数组变量,数组变量写入单元格又不行了。

TA的精华主题

TA的得分主题

发表于 2024-5-22 21:34 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-5-22 21:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
OKJSJSF 发表于 2024-5-22 21:34
今天想在WPS文字中录个宏,居然没发现有这个。

刚刚找到了

TA的精华主题

TA的得分主题

发表于 2024-5-23 07:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
太好了,感谢分享!

TA的精华主题

TA的得分主题

发表于 2024-5-23 22:59 | 显示全部楼层
本帖最后由 OKJSJSF 于 2024-5-24 21:23 编辑

试了一天,不知怎么写卸载窗体的语句。原来那个unload userform1没用啊,userform1.hide()不符合我的要求。金山文字。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-3 21:06 , Processed in 0.037372 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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