Я хотел бы редактировать ячейки в Excel из Outlook с помощью VBA.Редактировать ячейки в Excel из Outlook без повторного открытия Workbook
Хотелось бы так:
В первый раз, когда я запускаю макрос, ячейка A1 является «1».
Во второй раз, когда я запускаю макрос, Cell A2 - «1».
В третий раз, когда я запускаю макрос, ячейка A3 - «1».
.
.
Когда я запускаю макрос в пятый раз, он возвращается к ячейке A1 и увеличивает значение ячейки A1 от «1» до «2».
Dim count As Integer: count = 1
Dim number As Integer: number = 1
Sub test()
Dim xlApp As Object
Dim xlWB As Object
Dim xlSheet As Object
On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
If Err <> 0 Then
Set xlApp = CreateObject("Excel.Application")
End If
On Error GoTo 0
If (IsWorkBookOpen("D:\Book1.xlsx") = True) Then 'Check workbook is opening or not
Set xlWB = xlApp.Workbooks("D:\Book1.xlsx")
Else
Set xlWB = xlApp.Workbooks.Open("D:\Book1.xlsx")
End If
Set xlSheet = xlWB.Sheets("Sheet1")
If (count < 5) Then
xlSheet.Range("A" & count) = number
count = count + 1
Else
count = 0
number = number + 1
End If
End Sub
Function IsWorkBookOpen(FileName As String)
Dim ff As Long, ErrNo As Long
On Error Resume Next
ff = FreeFile()
Open FileName For Input Lock Read As #ff
Close ff
ErrNo = Err
On Error GoTo 0
Select Case ErrNo
Case 0: IsWorkBookOpen = False
Case 70: IsWorkBookOpen = True
Case Else: Error ErrNo
End Select
End Function
В нем говорится, что «индекс вне диапазона». У меня проблема с этой строкой: Set xlWB = xlApp.Workbooks("D:\Book1.xlsx")
. Когда я отлаживаю, я вижу эту строку выделенной.
Owesome, It's run. Огромное спасибо :) – Bruce