ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 跟我学JavaScript in WPS

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2024-5-2 12:51 | 显示全部楼层
重新录了一遍宏:
image.png
image.png
image.png
image.png

TA的精华主题

TA的得分主题

发表于 2024-5-2 12:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
重新录的宏:
/**
* 全行数据一览无余 Macro
* 宏由 OKJSJSF 录制,时间: 2024/05/02
*/
function 全行数据一览无余()
{
        Range("A1:AA1").Select();
        Selection.Copy(undefined);
        Sheets.Add(undefined, "Sheet1", 1, undefined);
        Range("B1").Select();
        Selection.PasteSpecial(xlPasteAll, xlPasteSpecialOperationNone, false, true);
        Range("A1").Select();
        Application.CutCopyMode = false;
        Selection.Formula = "1";
        Selection.AutoFill(Range("A1:A27"), xlFillDefault);
        Range("A1:A27").Select();
        Range("C1").Select();
        Sheets.Item("Sheet1").Activate();
        Range("A3:AA3").Select();
        Selection.Copy(undefined);
        Sheets.Item("Sheet2").Activate();
        Selection.PasteSpecial(xlPasteAll, xlPasteSpecialOperationNone, false, true);
        Range("A15:C27").Select();
        Selection.Cut(undefined);
        Range("D1").Select();
        ActiveSheet.Paste(undefined, undefined);
        Range("A1:F14").Select();
        Range("D1").Activate();
        Selection.Interior.Pattern = xlPatternNone;
        (obj=>{
                obj.ColorIndex = xlColorIndexAutomatic;
                obj.TintAndShade = 0;
        })(Selection.Font);
        Selection.Font.Bold = true;
        Selection.Font.Bold = false;
        Columns.Item("A:F").Select();
        Selection.AutoFit();
        Range("A1:F14").Select();
        (obj=>{
                obj.Weight = xlThin;
                obj.LineStyle = xlContinuous;
        })(Selection.Borders.Item(xlEdgeLeft));
        (obj=>{
                obj.Weight = xlThin;
                obj.LineStyle = xlContinuous;
        })(Selection.Borders.Item(xlEdgeTop));
        (obj=>{
                obj.Weight = xlThin;
                obj.LineStyle = xlContinuous;
        })(Selection.Borders.Item(xlEdgeBottom));
        (obj=>{
                obj.Weight = xlThin;
                obj.LineStyle = xlContinuous;
        })(Selection.Borders.Item(xlEdgeRight));
        (obj=>{
                obj.Weight = xlThin;
                obj.LineStyle = xlContinuous;
        })(Selection.Borders.Item(xlInsideVertical));
        (obj=>{
                obj.Weight = xlThin;
                obj.LineStyle = xlContinuous;
        })(Selection.Borders.Item(xlInsideHorizontal));
        Selection.Borders.Item(xlEdgeLeft).ColorIndex = xlColorIndexAutomatic;
        Selection.Borders.Item(xlEdgeTop).ColorIndex = xlColorIndexAutomatic;
        Selection.Borders.Item(xlEdgeBottom).ColorIndex = xlColorIndexAutomatic;
        Selection.Borders.Item(xlEdgeRight).ColorIndex = xlColorIndexAutomatic;
        Selection.Borders.Item(xlInsideVertical).ColorIndex = xlColorIndexAutomatic;
        Selection.Borders.Item(xlInsideHorizontal).ColorIndex = xlColorIndexAutomatic;
        Range("A1:C14").Select();
        (obj=>{
                obj.Weight = xlThick;
                obj.LineStyle = xlDouble;
                obj.ColorIndex = xlColorIndexAutomatic;
                obj.TintAndShade = 0;
        })(Selection.Borders.Item(xlEdgeRight));
        Range("G1").Select();

}

TA的精华主题

TA的得分主题

发表于 2024-5-2 14:11 | 显示全部楼层
删除完全多余的代码后剩余60行:
function 全行数据一览无余()
{
        Range("A1:AA1").Select();
        Selection.Copy(undefined);
        Sheets.Add(undefined, "Sheet1", 1, undefined);
        Range("B1").Select();
        Selection.PasteSpecial(xlPasteAll, xlPasteSpecialOperationNone, false, true);
        Range("A1").Select();
        Selection.Formula = "1";
        Selection.AutoFill(Range("A1:A27"), xlFillDefault);
        Sheets.Item("Sheet1").Activate();
        Range("A3:AA3").Select();
        Selection.Copy(undefined);
        Sheets.Item("Sheet2").Activate();
        Selection.PasteSpecial(xlPasteAll, xlPasteSpecialOperationNone, false, true);
        Range("A15:C27").Select();
        Selection.Cut(undefined);
        Range("D1").Select();
        ActiveSheet.Paste(undefined, undefined);
        Range("A1:F14").Select();
        Range("D1").Activate();
        Selection.Interior.Pattern = xlPatternNone;
        (obj=>{
                obj.ColorIndex = xlColorIndexAutomatic;
        })(Selection.Font);
        Selection.Font.Bold = false;
        Columns.Item("A:F").Select();
        Selection.AutoFit();
        Range("A1:F14").Select();       
        Selection.Borders.Item(xlEdgeLeft).ColorIndex = xlColorIndexAutomatic;
        Selection.Borders.Item(xlEdgeTop).ColorIndex = xlColorIndexAutomatic;
        Selection.Borders.Item(xlEdgeBottom).ColorIndex = xlColorIndexAutomatic;
        Selection.Borders.Item(xlEdgeRight).ColorIndex = xlColorIndexAutomatic;
        Selection.Borders.Item(xlInsideVertical).ColorIndex = xlColorIndexAutomatic;
        Selection.Borders.Item(xlInsideHorizontal).ColorIndex = xlColorIndexAutomatic;
        (obj=>{
                obj.LineStyle = xlContinuous;
        })(Selection.Borders.Item(xlEdgeLeft));
        (obj=>{
                obj.LineStyle = xlContinuous;
        })(Selection.Borders.Item(xlEdgeTop));
        (obj=>{
                obj.LineStyle = xlContinuous;
        })(Selection.Borders.Item(xlEdgeBottom));
        (obj=>{
                obj.LineStyle = xlContinuous;
        })(Selection.Borders.Item(xlEdgeRight));
        (obj=>{
                obj.LineStyle = xlContinuous;
        })(Selection.Borders.Item(xlInsideVertical));
        (obj=>{
                obj.LineStyle = xlContinuous;
        })(Selection.Borders.Item(xlInsideHorizontal));
        Range("A1:C14").Select();
        (obj=>{
                obj.LineStyle = xlDouble;
                obj.ColorIndex = xlColorIndexAutomatic;
        })(Selection.Borders.Item(xlEdgeRight));
        Range("G1").Select();
}

TA的精华主题

TA的得分主题

发表于 2024-5-2 15:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ctp_119 发表于 2024-5-1 16:47
用变量替代,,,

大佬,请问一下js宏怎么模拟键盘按下空格键?

TA的精华主题

TA的得分主题

发表于 2024-5-2 15:12 | 显示全部楼层
本帖最后由 OKJSJSF 于 2024-5-2 20:20 编辑

在金山JSA中的如下代码        
        Range("A1:C14").Select();
        (obj=>{
                obj.LineStyle = xlDouble;
                obj.ColorIndex = xlColorIndexAutomatic;
        })(Selection.Borders.Item(xlEdgeRight));
只能简化为如下
Range("A1:C14").Borders.Item(xlEdgeRight)).LineStyle = xlDouble;
Range("A1:C14").Borders.Item(xlEdgeRight)).ColorIndex = xlColorIndexAutomatic;

        (obj=>{
                obj.LineStyle = xlDouble;
                obj.ColorIndex = xlColorIndexAutomatic;
        })(Range("A1:C14").Borders.Item(xlEdgeRight));
不能简化为微软VBA的如下代码
With Range("A1:C14").Borders.Item(xlEdgeRight))
    .LineStyle = xlDouble
    .ColorIndex = xlColorIndexAutomatic
End with
金山JSA中的语法中(obj=>{obj.属性=参数常量或其它表达式})(对象.属性);的obj代表被操作的对象及属性,类似不需声明的变量,却不能省略

TA的精华主题

TA的得分主题

发表于 2024-5-2 21:34 | 显示全部楼层
本帖最后由 OKJSJSF 于 2024-5-3 12:51 编辑

对录制的宏进行简单修改,变量还未加入:
image.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-5-3 12:59 | 显示全部楼层
JSA还没有为快速访问工具栏的自定义的宏命令按钮开发提供icon图标。 image.png

TA的精华主题

TA的得分主题

发表于 2024-5-5 14:24 | 显示全部楼层
ctp_119 发表于 2022-5-22 05:06
常用输出信息的方法并注意区别function shcxx(){        Console.log("WPS的JS程序");     //在立即窗口中显示        Deb ...

原来余数是用百分号运算符,弄了我好几天。

TA的精华主题

TA的得分主题

发表于 2024-5-5 22:21 | 显示全部楼层
任务完成:
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("排版完毕。")
}

TA的精华主题

TA的得分主题

发表于 2024-5-6 22:00 | 显示全部楼层
OKJSJSF 发表于 2024-5-5 22:21
任务完成:
function 全行数据一览无余(){
        while(!rang){

我在想这个宏的名字,哪个最好:
全行数据一览无余
全行数据一览
一行数据一览无余
一行数据一览
记录单
我的记录单
记录打印前排版
记录排版

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 02:33 , Processed in 0.038975 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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