メールを使ってExcelの一部を受信者に自動的に送信するマクロを作成しました。コードは完全に機能していて、うまく機能しています。選択した範囲のメールを送信するマクロ(条件付きの場合のみ行)
しかし、私はマイナーチェンジを実装したい:マクロは実際には範囲(列)をフィルタリングし、フィルタリング後に存在する行をコピーして別のシートにペーストします。
その後、コピーした範囲を一部の受信者に送信します。
私が変更したいのは、値が内部だけで0以外にもコピーされた行だけを送信するようにマクロに指示することです。
したがって、行(データごとに8列あり)すべての列で、この列を送信しないでください。
以下のコードを提供します。 If条件を追加するのは簡単ですが、試して失敗しました。コード内にIf条件を追加する方法を誰かが知っている可能性があります。
Sub MAIL()
Dim ToArray As String
Dim CCArray As String
Dim Subject As String
Dim Content As String
Dim lastrow1 As Integer
Dim lastrow2 As Integer
Application.ScreenUpdating = False
For I = 1 To 20
Sheets.Add.Name = "WS1"
Sheets("Report").Activate
ToArray = "[email protected]"
'ToArray = ThisWorkbook.Sheets("Report").Cells((I + 2), 28).Value
CCArray = ThisWorkbook.Sheets("Report").Cells((I + 2), 29).Value
Subject = ThisWorkbook.Sheets("Report").Cells((I + 2), 30).Value
Content = ThisWorkbook.Sheets("Report").Cells((I + 2), 31).Value
ThisWorkbook.Sheets("Report").Range("I24:U24").AutoFilter Field:=2, Criteria1:=ThisWorkbook.Sheets("Report").Cells((I + 2), 27).Value
lastrow1 = ThisWorkbook.Sheets("Report").Cells(ThisWorkbook.Sheets("Report").Rows.Count, "U").End(xlUp).Row
ThisWorkbook.Sheets("Report").Range("K24:U" & lastrow1).SpecialCells(xlCellTypeVisible).Copy ThisWorkbook.Sheets("WS1").Cells(1, 1)
lastrow2 = ThisWorkbook.Sheets("WS1").Cells(Sheets("WS1").Rows.Count, "A").End(xlUp).Row
If lastrow2 >= 2 Then
Sheets("WS1").Columns("A:M").AutoFit
Sheets("WS1").Activate
Sheets("WS1").Range("A1:M" & lastrow2).Select
ActiveWorkbook.EnvelopeVisible = True
With Sheets("Report").MailEnvelope
.Introduction = Content
.Item.To = ToArray
.Item.CC = CCArray
.Item.Subject = Subject
.Item.Send
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = False
End If
Sheets("WS1").Delete
Next I
End Sub
ありがとうございました。不幸なことに、すべてが0の行をペーストします。ただし、その重要な点はわかりませんが、範囲の最初の2つの列には、ヘッダーなので、値はありません。値は範囲の3行目から始まります...重要ですか? –
申し訳ありませんが、自分でテストすることができない場合は、解決策を見つけるのはやや難しいです。私はどのように実行されているか(そして何が起こっているか)をよりよく理解するために、スクリプトをステップごとに実行することを提案しています。それはあなたにいくつかの手がかりを与えることができます。 – SMFSW
@PericlesFaliagas希望の結果を得ることができましたか?あるいは、段階的に実行している間に何かが間違って始まるのを見つけましたか? – SMFSW