2016-10-15 10 views
1

VBAを使用してOutlookからExcelのセルを編集したいと思います。ブックを再度開くことなくOutlookからExcelのセルを編集する

私はそうしたいです:
初めてマクロを実行すると、セルA1は "1"です。
2回目にマクロを実行すると、セルA2が "1"になります。
マクロを3回実行すると、セルA3は "1"になります。


マクロを5回実行すると、セル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")。私がデバッグすると、この行がハイライト表示されています。

答えて

0

あなたはパス

使用

Set xlWB = xlApp.workbooks("Book1.xlsx") 
とそれにフルネームを引けるている間 Workbooks(...)であなたが暗黙のうちに、オブジェクトの 名前またはインデックス番号が必要WorkbooksオブジェクトのItem()プロパティを使用しているためです
+0

うわー、それは動いている。どうもありがとうございます :) – Bruce

関連する問題