调用wps表格中的js宏调试变量输出

动作开发 · 906 次浏览
涛涛涛 创建于 2天0小时前

调用wps表格中的js宏调试输出quicker变量

https://getquicker.net/subprogram?id=7395b4dd-dbe1-4f32-277f-08ddb3a32db0     子程序

https://getquicker.net/Sharedaction?code=aecd973b-658a-4173-2780-08ddb3a32db0  动作

注意:

测试时,请在空白表格测试,代码会清空活动工作表的数据内容

第一次调用时,可能会比较慢

要使用wps表格(不需要vba环境)

Office的Excel暂时不能用(需要写vba代码配合才能用)

js宏代码如下(wps):(将代码放到这个地方wps宏编辑器中,代码内容请不要改,改了可能会调用失败)

 
//1.格式化表格标题
function 格式化表格()
{
    Range("a1:g302").Delete(xlShiftToLeft);
    ActiveSheet.Range("A1").Value2="quicker变量数据打印输出";
    ActiveSheet.Rows.Item("1:1").RowHeight = 33;
    (obj=>{obj.Merge(false);obj.HorizontalAlignment = xlHAlignCenter;})(Range("a1:g1"));
    Range("a2:g2").Value2=["序号","变量名","变量类型","变量值","备注","时间","其他"];
    Range("a3:a302").Value2=Range("a3:a302").Value2.map((a,b)=>[b+1]);
    美化表格1(1)
    Range("b3").Activate();
}
 
//2.向单元格写入变量内容
function gg1(a)
{
if(Range("b2").Value2!=="变量名"){格式化表格()};
//var aa=ActiveCell.Row;
var aa=Range("b302").End(xlUp).Row+1;
var bb=a.split("|");
Range(`b${aa}:g${aa}`).Value2=bb;
if(bb[1]=="图片"){gg2(bb[2],aa)};
//ActiveCell.Offset(1,0).Activate();
Range(`b${aa}:g${aa}`).Activate();
}
 
//3.向单元格插入图片
function gg2(a,b)
{
Range("d"+b).RangeEx.InsertCellPicture(a);
Rows.Item(b+":"+b).RowHeight = 25;
}
 
//建议用美化表格1 (没有用超级表美化,对电脑性能不太好的适合)
//4.1美化表格1
function 美化表格1(a)
{
    Columns.Item("A:A").ColumnWidth = 5;
    Columns.Item("C:C").ColumnWidth = 10;
    Columns.Item("D:D").ColumnWidth = 40;
    Columns.Item("F:F").ColumnWidth = 25;
    Columns.Item("G:G").ColumnWidth = 15;
}
//4.2美化表格
function 美化表格2(a)
{
    let listObj =ActiveSheet.ListObjects.Add(xlSrcRange, Range("A2:G302"), undefined, xlYes, undefined);
    listObj.Unlist();
    (obj=>{obj.EntireColumn.Hidden = false;obj.ColumnWidth = 5;})(Columns.Item("A:A"));
    (obj=>{obj.EntireColumn.Hidden = false;obj.ColumnWidth = 10;})(Columns.Item("C:C"));
    (obj=>{obj.EntireColumn.Hidden = false;obj.ColumnWidth = 40;})(Columns.Item("D:D"));
    (obj=>{obj.EntireColumn.Hidden = false;obj.ColumnWidth = 25;})(Columns.Item("F:F"));
    (obj=>{obj.EntireColumn.Hidden = false;obj.ColumnWidth = 15;})(Columns.Item("G:G"));
}
 
涛涛涛 最后更新于 2025/6/26

回复内容
CL 2天0小时前
#1

牛!

涛涛涛 回复 CL 1天23小时前 :

请问一下,怎样通过变量获取变量的字符串名字,有没有直接的方式,这样直接获取变量的字符串名字(不是数据)

现在是这样间接获取的变量的字符串名字的,有点别扭

涛涛涛 最后更新于 1天23小时前
CL 回复 涛涛涛 1天22小时前 :

有点没太看懂😂
如果是在运行期间,参数里得到的是最终值,有可能是变量的值,也可能是表达式或插值的结果,或者纯文本值。
所以似乎是没法获取到变量名的。

涛涛涛 回复 CL 1天21小时前 :

好的,我是就这个子程序的一个参数提问的,因为要输出变量信息,需要用到变量的字符串名称

现在调用时,提供这个参数填的是变量字符串的名称

(这样会让使用者或调用者感到别扭,明明是要打印输出变量信息的,但不是提供变量,而是提供变量字符串的名称)

所以才这样问的,是我构造子程序产生的问题,问问看有没有更合理的方式

涛涛涛 最后更新于 1天21小时前
CL 回复 涛涛涛 1天20小时前 :

嗯,等后期我这里试试直接生成结构化数据的调试日志了。

乐昂岚【接定制】 回复 涛涛涛 1天20小时前 :

这样会不会好点,作为子程序输入时只需要输入参数名

变量内容根据参数名提取


涛涛涛 回复 乐昂岚【接定制】 1天18小时前 :

嗯嗯,我就是这样做的,所以才产生出这样奇怪的问题,

想了想,既然这样,那就多添加一个参数,同时接收变量和变量名称(让逻辑上更加合理)

回复主贴