2017-11-03 15 views
1

以下のコードは、.Toが「A1」で始まる特定のワークシート「電子メールリスト」の配列をプルすることを除いて、必要なものに対して完全に機能します。私がこのコードから加えたり引いたりすることは、コードを停止させるだけです。どんな助力も本当に感謝しています。Email to Array VBA

Dim AWorksheet As Worksheet 
    Dim Sendrng As Range 
    Dim rng As Range 

    On Error GoTo StopMacro 

    With Application 
     .ScreenUpdating = False 
     .EnableEvents = False 
    End With 
    Set Sendrng = Worksheets("Daily Notes").Range("A1:M67")    
    Set AWorksheet = ActiveSheet  
    With Sendrng  
     .Parent.Select  
    Set rng = ActiveCell  
     .Select  
     ActiveWorkbook.EnvelopeVisible = True 
     With .Parent.MailEnvelope 
      .Introduction = "Daily Notes *ad items are in bold*"  
      With .Item 
       .To = "" 
       .CC = "" 
       .BCC = "" 
       .Subject = "Daily Notes" 
       .Send 
      End With  
     End With 
     rng.Select 
    End With 
    AWorksheet.Select  
StopMacro: 
    With Application 
     .ScreenUpdating = True 
     .EnableEvents = True 
    End With 
    ActiveWorkbook.EnvelopeVisible = False  
End Sub 
+1

「私はこのコードから、追加または減算すべてがちょうど停止するコードが発生します。」 - あなたは正確に何を追加したり引いたりしていますか? – Vityata

+0

解決策を見つけるためにさまざまな設定を試みることはこれまでできなかった。 –

答えて

0

あなたの質問を言い換えるのであれば、それはのようなものです:で区切られた文字列にExcelからの範囲内の値を取得する方法

「;」?

値が「A1:D1」の範囲内にあるとします。あなたは、以下の機能を紹介した場合次に、:

Public Function GetArrayToString(myRange As Range) As String 

    Dim cnt  As Range 

    For Each cnt In myRange 
     GetArrayToString = GetArrayToString & cnt & ";" 
    Next cnt 

End Function 

あなたがvalue1; value2; value3; value4のような値を取得します。これはあなたのコードでそれを参照する方法である:

.To = GetArrayToString(Worksheets("TheSpecialOneAkaMrM").Range("A1:D1"))

+0

ありがとうございます - 私は自分のコードで動作するようにはなっていませんが、あなたが説明しようとしているコンセプトを理解しています。 –

+0

@ValerieHeimkreiter - 「私のコードでうまく動作しないのですが」 - なぜですか? – Vityata

+0

あなたの提案を追加するとき、それは未定義に戻ってきます。私は正直なところ、私が何かを逃しているのならば、この時点では確信しています。なぜなら、私はこれで最後の24時間何かを議論してきたからです。 –