基本的に私は7つのセルにテキスト(b2、b4、b6、b8、b10、b12およびb14)を入力できます。私はコードに、各セルが値を持っているかどうかを確認し、電子メールに値を持つセルだけを送信するようにします。書式設定の目的で、電子メールに貼り付けられたセルには空のセルが1つ必要であり、セルは元の順序で保持する必要があります。Excelを使用してデータをコピーしてメールを送信しようとした後に
私は公式にVBAを学んだことはありません。私は、ケースバイケースのシナリオで自分自身を教えただけなので、簡単に解決できない場合があります。多くの場合、デバッグして問題を見つけることができますが、この場合、Excelは完全にフリーズして「応答しません」と表示されます。私はどこかにループがあることを意味しているという気持ちがありますが、どういうわけか本当に分かりません。コードは、Range( "A2")まで実行されます。Value = Line(LineCount1)。任意の提案をいただければ幸いです。あなたの質問に答えるために
Public Sub SingleEmail()
Dim LineCount1 As Integer
Dim LineCount2 As Integer
Dim LineCount3 As Integer
Dim LineCount4 As Integer
Dim LineCount5 As Integer
Dim LineCount6 As Integer
Dim LineCount7 As Integer
Dim NumOfLines As Integer
Range("A2", "A14").ClearContents
LineCount1 = 2
Range("A2").Value = Line(LineCount1)
LineCount2 = 2 + LineCount1
Range("A4").Value = Line(LineCount2)
LineCount3 = 2 + LineCount2
Range("A6").Value = Line(LineCount3)
LineCount4 = 2 + LineCount3
Range("A8").Value = Line(LineCount4)
LineCount5 = 2 + LineCount4
Range("A10").Value = Line(LineCount5)
LineCount6 = 2 + LineCount5
Range("A12").Value = Line(LineCount6)
LineCount7 = 2 + LineCount6
Range("A14").Value = Line(LineCount7)
NumOfLines = Range("n3").Value
If Range("A2") <> "" Then
Range("A2", "A" & NumOfLines).Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Introduction = ""
.Item.To = "[email protected]"
.Item.CC = ""
.Item.Subject = "Email Subject"
.Item.send
End With
End If
End Sub
Function Line(ByRef LineCount As Integer) As String
Line = ""
Do While Line = "" Or LineCount < 13
If Range("B" & LineCount).Value <> "" Then
Line = Range("B" & LineCount).Value
Else
LineCount = LineCount + 2
End If
Loop
End Function
>」です> <場合、今のループが終了します
OR
Do While Line = "" And LineCount < 13
の代わりにAnd
演算子を使用する必要がありますDo Whileループの一部は実行されません。 – jcarroll私はこのコードを実行していたテスト領域で、Elseステートメントを1回ループしていたはずです。セルb2は現在空白であり、セルb4はテキストを有する。 Elseセクションよりもセルb2にテキストがある場合、代わりにifステートメントの最初のセクションが入力されるため、実行されません。変数Lineが何も無ければ、関数はループを止めて結果を返します。私はそれが私が思うように動作しているかどうかを調べるためにそれをテストする方法を知っていますか? – sdrloveshim
デバッガを使用してステップ実行しますか? – Comintern