我使用R修改Excel文件中的单元格。
手动更改此单元格时,Worksheet_Change启动,以指示修改日期(在其他两个单元格中)。
当我在R中运行代码时,会在第46列中指示修改的日期(请参见VBA代码ModificationDate1)。列40中的修改日期(请参见VBA代码ModificationDate2)没有出现。我收到VBA错误1004。
未指示错误出现的位置。我无法单击调试。
我希望第40栏中的修改日期也出现。 (稍后,当我直接在Excel中进行更改时,将显示此内容。)
我在R中的代码:
if (NewInput != CurrentData) {
xlApp <- COMCreate("Excel.Application")
wb <- xlApp[["Workbooks"]]$Open("path.xlsm")
sheet <- wb$Worksheets("Sheet1")
cell <- sheet$Cells(Outputrow + 6, 7)
cell[["Value"]] <- paste0(NewInput)
wb$Save()
xlApp$Quit()
}
我在vba中的代码
Private Sub Worksheet_Change(ByVal Target As Range)
'**ModificationDate1**
Dim WorkRng As Range
Dim Rng As Range
LastRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
Set Rng = Range(Cells(7, 7), Cells(LastRow, 7))
If Not Intersect(Target, Rng) Is Nothing Then
Call UnprotectCells
Cells(Target.Row, 46).Value = Date
Call ProtectCells
End If
'**ModificationDate2**
Dim rng1 As Range
Dim rng2 As Range
Set rng1 = Range(Cells(7, 3), Cells(LastRow, 4))
Set rng2 = Range(Cells(7, 7), Cells(LastRow, 10))
If Not Intersect(Target, Union(rng1, rng2)) Is Nothing Then
Call UnprotectCells
Cells(Target.Row, 40).Value = Date
Call ProtectCells
End If
End Sub