我正在努力从 VBA 代码制作 Office 脚本代码。 ChatGPT 帮不上忙,遗憾的是我没有学习任何 JS 或任何脚本语言。您能帮我将此 VBA 代码转换为 Office 脚本吗?
基本上,此代码复制 G 列中包含“Lejárt”数据的行并将其粘贴到其他工作表中。 这是 VBA 代码:(仅供参考:Munka1 表示 Sheet1)
Sub masolas()
a = Worksheets("Munka1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To a
If Worksheets("Munka1").Cells(i, 7).Value = "Lejárt" Then
Worksheets("Munka1").Rows(i).Copy
Worksheets("Munka2").Activate
b = Worksheets("Munka2").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("Munka2").Cells(b + 1, 1).Select
ActiveSheet.Paste
Worksheets("Munka1").Activate
End If
Next
Application.CutCopyMode = False
ThisWorkbook.Worksheets("Munka1").Cells(1, 1).Select
End Sub
function main(workbook: ExcelScript.Workbook) {
let sheet1 = workbook.getWorksheet("Sheet1");
let sheet2 = workbook.getWorksheet("Sheet2");
sheet2.getRange().clear(ExcelScript.ClearApplyTo.contents);
let lastRow = sheet1.getRange("A:A").getLastCell().getRangeEdge(ExcelScript.KeyboardDirection.up).getRowIndex() + 1;
let values = sheet1.getRange("G1:G" + lastRow).getValues();
for(let i=0; i<values.length; i++){
if (values[i][0] == "Lejárt") {
let lastRow2 = sheet2.getRange("A:A").getLastCell().getRangeEdge(ExcelScript.KeyboardDirection.up).getRowIndex();
if (sheet2.getCell(lastRow2,0).getText().length) {
lastRow2 += 1;
}
sheet2.getCell(lastRow2, 0).copyFrom(sheet1.getRange(`${i+1}:${i+1}`), ExcelScript.RangeCopyType.all, false, false);
}
}
}