2017-05-11 9 views
0

Excelワークブックにマクロがあり、別のファイルからカウント操作を実行していて、マクロがあるファイルで更新しています。ブックを開いて範囲を数え、別のブックに数を書き込んでください

Private Sub count_Click() 
    Dim MyCount(1 To 3) As Long 
    Dim myData As Workbook 
    Dim Rng As Range 

    Set myData = Workbooks.Open("C:\Users\xyz\Desktop\cas\Book3.xlsx") ' selecting a workbook' 

    With myData.Worksheets("sheet1") 
     Set Rng = Intersect(.Columns(1), .UsedRange) 
     MyCount(1) = WorksheetFunction.CountA(Rng) 
    End With 

    With myData.Worksheets("sheet1") 
     Set Rng = Intersect(.Columns(5), .UsedRange) 
     MyCount(2) = WorksheetFunction.CountA(Rng) 
    End With 

    'MsgBox "count is " & MyCount(1) 
    Set myData = Workbooks.Open("C:\Users\xyz\Desktop\cas\Book2.xlsm") 
     ' the workbook where I want the values to be transferred' 

    With myData.Worksheets("sheet1").Range("a1") 
     .Offset(RowCount, 0) = MyCount(1) 
    End With 

    With myData.Worksheets("sheet1").Range("a2") 
     .Offset(RowCount, 0) = MyCount(2) 
    End With 
End Sub 

ブックを開いて値を更新しようとしましたが、値は表示されませんでした。 おそらく、ブックのインスタンスが開いていて、更新できないことが原因です。

+0

にエラー・メッセージがあるのですか?そして、どのワークブックが 'count_Click()'プロシージャですか?それが 'Book2.xlsm'なら' Set myData = ThisWorkbook'です。 –

答えて

0

あなたはそれが唯一のオープン読み取ることができると思うなら、あなたが試すことができます:

'MsgBox "count is " & MyCount(1) 
Set myData = Workbooks.Open("C:\Users\xyz\Desktop\cas\Book2.xlsm") 

If myData.ReadOnly Then 
    MsgBox "File is Read-only" 
    exit sub 
Else 
    MsgBox "File is not read-only" 
End If 
+0

それはそうではありません。 myDataをBook2として設定することはできません。 – 11user2614896

関連する問題