0

コードを実行すると、Type Mismatch のエラーが発生しますuserNames = .Range("A1:A100") 。これをどのように修正できるかわからない、何か提案はありますか?

Sub AddPix()

Dim userNames() As String
Dim userPixNames() As String
Dim currentUser As String
Dim myPassword As String
myPassword = "trade2013"
Sheets("Collection Slip").Unprotect Password:=myPassword

With Worksheets("User Management")
    'Assign the user names to an array (much faster than looping through range)
    userNames = .Range("A1:A100")
    userPixNames = .Range("B1:B100")
End With
For i = 1 To 100
    'The 1 in userNames(i,1) is needed because of the way
        'VBA creates an array assigned directly from a range
        '(as we did above)
    If Environ$("UserName") = userNames(i, 1) Then
        'Have I missed where the picture will be inserted?
        With Sheets("Collection Slip").Pictures.Insert _
            ("G:\ITS\Shared\Signature\" & userPixNames(i, 1) & ".jpg")
            .Top = Range("B31").Top
            .Left = Range("B31").Left
            .Width = 250
            .Height = 58
        End With
        'short-circuit the For loop when current user's name is found
        i = 100
    End If
 Next i
 'Sheets("Collection Slip").Protect Password:=myPassword
End Sub

さらに、文字列ではなくバリアントとしての Dim userNames() にうんざりしています。ただし、「userNames = .Range("A1:A100")」で「Type Mismatch」のエラーが引き続き発生します。

どんな助けでもいただければ幸いです

4

1 に答える 1