θΘΞΘθ 2023-03-28 22:11 采纳率: 100%
浏览 33
已结题

怎么写wps宏代码运行区域

代码需要在指定的表格区域生效
生效区域为B9:J17

function Application_SheetSelectionChange()
{
    for(var ii=9;ii<=17;ii++)
    {
       switch (true)
        {
     
        case Cells(ii,2).Value2 != undefined && Cells(ii,4).Value2 > 0 && Cells(ii,5).Value2 > 0:
            Cells(ii,8).Value2=Cells(ii,4).Value2*Cells(ii,5).Value2;
            break;
        default:
            Cells(ii,8).Value2="";
            break;
        }
        switch (true)
        {
        case Cells(ii,2).Value2 != undefined && Cells(ii,9).Value2 > 0 && Cells(ii,10).Value2 > 0:
            Cells(ii,11).Value2=Cells(ii,9).Value2*Cells(ii,10).Value2;
            break;
        default:
            Cells(ii,11).Value2="";
            break;
        }
    }

}

img

  • 写回答

2条回答 默认 最新

  • Excel效率人 2023-03-29 11:29
    关注

    思路:1判断目标的工作表名称是否符合;2判断目标是否在B9:L17单元格区域,用Application.Intersect方法;3获取B9:L17单元格数据,用forEach循环处理数据

    function Workbook_SheetSelectionChange(Sh, Target) {
        if (Sh.Name != '销售单') return
        let rng = Application.Intersect(Target, Range('B9:L17'))
        if (rng) {
            let data = Range('B9:L17').Value2
            let ros = 9
            data.forEach(i => {
                if (i[0] && i[2] && i[3]) {
                    Cells(ros, 8).Value2 = i[2] * i[3]
                } else { Cells(ros, 8).Value2 = '' }
    
                if (i[0] && i[7] && i[8]) {
                    Cells(ros, 11).Value2 = i[7] * i[8]
                } else { Cells(ros, 11).Value2 = '' }
    
                ros++
            })
    
        }
    }
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月29日
  • 已采纳回答 5月21日
  • 创建了问题 3月28日

悬赏问题

  • ¥15 锌合金的耐温能到多少度。可以持续多长时间
  • ¥15 .net调用本地office组件出现问题
  • ¥15 docker镜像拉取失败请教教我
  • ¥15 https访问nginx上的http
  • ¥15 需要完整规则的五子棋博弈代码
  • ¥15 Hadoop的部署与安装的一些疑问
  • ¥15 短剧的sdk在哪里接入
  • ¥30 智能割草机自动化割草
  • ¥15 求:可不可以提供一些 在国内可以用,低代码不要太难 在电脑上可以下载的 制作app的软件
  • ¥15 fluke高精度万用表8845A型号测交流电压一直跳动,且去掉输入后显示不归零