微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何以正确的方式将 VBA 中的 For 循环转换为 Typescript

如何解决如何以正确的方式将 VBA 中的 For 循环转换为 Typescript

我正在尝试将宏 VBA 转换为 Office 脚本(Typescript)以在 Excel Web 中运行

我有这段 VBA 代码

Sub process()
        On Error GoTo Error_Handler
    ' concatenate Macro

    Dim var As String
    Dim row As Integer
    Dim column As Integer
    Dim concatened As String
    Dim hours() As String
    Dim cursor As Integer
    Dim person As Integer
    Dim sum As Double
    
    ' zeroing columns

    For column = Sheets("Parameters").Cells(2,4) To Sheets("Parameters").Cells(2,5)
        For row = Sheets("Parameters").Cells(2,2) To Sheets("Parameters").Cells(2,3)
            
            Sheets("Projects").Cells(row,column) = ""
            
        Next row
        
        Sheets("Projects").Cells(3,column) = ""
        
    Next column

上下文是:我有一个名为 Projects 的主工作表,然后这个循环扫描由名为 Parameters 的工作表确定的列和行并删除其中的数据

细胞 2,4; 2,5; 2,2; 2,3 告诉他们从哪里开始,从哪里停止,按列和行

起初我是这样做的:

    //catch active worksheet
  let selectedWorksheet = workbook.getActiveWorksheet();
  

  // select range to scan
  let range = selectedWorksheet.getRange("EK3:HL3");

  // zeroing columns
  range.setValue("");

但我想像 VBA 代码一样自动化“EK3:HL3”,通过参数工作表进行编辑,而不是在代码中手动更改,以防 EK3:HL3 范围变大....

如果你们能点亮我的心,我会很高兴

解决方法

您可以尝试使用 getRangeByIndexes

    const wsParameters = Workbook.getWorksheet("Parameters")
    const wsProjects = Workbook.getWorksheet("Projects")
    
    const startRow = wsParameters.getRange("B2").getValue()
    const startCol = wsParameters.getRange("D2").getValue()
    const noRow = wsParameters.getRange("C2").getValue() - startRow + 1
    const noCols = wsParameters.getRange("E2").getValue() - startCol + 1

    let rng = wsProjects.getRangeByIndexes(startRow,startCol,noRow,noCols)

    rng.setValue("")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?