0
これは私のコードです。私は重複する名前を持つ列Cと一意のIDを持つ列Bを持っています。どの固有IDがどの名前と一致するかを調べ、名前に電子メールを送信して電子メールに一意のIDを貼り付ける必要があります。最初のMe.Cellsにエラーが表示されます。辞書を作成しています。 Meキーワードの無効な使用エラー
サブsendEmails()
Dim dict_emails As Scripting.dictionary
Set dict_emails = New Scripting.dictionary
Dim objOutlook As Object
Dim objMailMessage As Object
Set objOutlook = CreateObject("Outlook.Application")
Dim row As Range
Dim table As ListObject
Dim row_index As Long
Dim strEmail As String
Dim strExeptionID As String
ActiveWorkbook.Sheets("New 0-30").Select
Set table = ActiveSheet.ListObjects("New_030_Table")
For row_index = 1 To table.DataBodyRange.Rows.Count
strEmail = table.DataBodyRange(row_index, 3).Value
strExceptionID = table.DataBodyRange(row_index, 2).Value
If Not dict_emails.Exists(strEmail) Then
' first time we have seen this name
dict_emails.Add strEmail, strExceptionID
Else
dict_emails(strEmail) = dict_emails(strEmail) & vbCrLf & strExceptionID
End If
Next
Dim var_key As Variant
For Each var_key In dict_emails.Keys
Set objMailMessage = objOutlook.CreateItem(0) ' create new mail
With objMailMessage
.To = "" & var_key
.CC = ""
.BCC = ""
.Subject = "Exceptions Set to Expire in Less Than 30 Days"
.Body = "You have the following exceptions set to expire: " & vbCrLf & dict_emails(var_key)
.Save ' save as draft
End With
Next
End Subの
あなたのコードがシートモジュール(そこに含まれているワークシートを参照する)にあり、通常のモジュールではない場合、 'Me'が動作します。 'Me'はオブジェクトコードが"自身 "(それが実行しているオブジェクトインスタンス)を参照する方法です。通常のモジュールのコードはそのような環境にはありません(つまり、オブジェクトインスタンスで実行されていません)。 –
どこでも変数 'Row'を定義していません。 (おそらく、モジュールやプロジェクトレベルの範囲で定義していて、質問にそのコードの一部が含まれていないのではないでしょうか?) – YowE3K