• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Excel VBA Thunderbird wypisywanie wartości tablicy w treści maila

+1 głos
186 wizyt
pytanie zadane 25 sierpnia 2021 w Visual Basic przez morking Nowicjusz (160 p.)
zamknięte 26 sierpnia 2021 przez morking

Witam, mam pytanie dotyczące tablic. Mam tablicę dane(), zawierającą x elementów (ich ilość oraz wartości są losowe). Czy jest możliwość wypisania wszystkich elementów tablicy w treść maila lub jakiś inny sposób by to zrobić? Próbowałem z for ale nie wychodziło mi to. Poniżej zamieszczam kod.
 

 
Sub Wyslij_maila(dane, x)

Dim thund As String
Dim email As String
Dim temat As String
Dim body As String

email = ";"
temat = "123"
body = "Dane: " & dane(x)
thund = "C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe " & _
"-compose " & """" & _
"to='" & email & "'," & _
"subject='" & temat & "'," & _
"body='" & body & "'" & """"

Call Shell(thund, vbHide)
Application.Wait (Now + TimeValue("0:00:2"))
'SendKeys "^{ENTER}", True
Application.Wait (Now + TimeValue("0:00:2"))
'SendKeys "^{ENTER}", True

End Sub

 

komentarz zamknięcia: Znaleziona odpowiedź

1 odpowiedź

+1 głos
odpowiedź 26 sierpnia 2021 przez VBService Mędrzec (179,210 p.)
wybrane 26 sierpnia 2021 przez morking
 
Najlepsza

Możesz użyć pętli For Each, ma taką zaletę, że "wie" wink jakiej długości jest tablica.

Propozycja modyfikacji Twojego kodu

Sub Wyslij_maila(dane)
 
Dim thund As String
Dim email As String
Dim temat As String
Dim body  As String
 
email = ";"
temat = "123"
body  = "Dane: "

For Each rekord In dane
   body = body & rekord & " "
Loop

thund = "C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe " & _
"-compose " & """" & _
"to='" & email & "'," & _
"subject='" & temat & "'," & _
"body='" & body & "'" & """"
 
Call Shell(thund, vbHide)
Application.Wait (Now + TimeValue("0:00:2"))
'SendKeys "^{ENTER}", True
Application.Wait (Now + TimeValue("0:00:2"))
'SendKeys "^{ENTER}", True
 
End Sub

 

Możesz tez użyć funkcji Join i wtedy masz:

Sub Wyslij_maila(dane)
 
Dim thund As String
Dim email As String
Dim temat As String
Dim body  As String
 
email = ";"
temat = "123"
body  = "Dane: " & Join(dane, " ")

thund = "C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe " & _
"-compose " & """" & _
"to='" & email & "'," & _
"subject='" & temat & "'," & _
"body='" & body & "'" & """"
 
Call Shell(thund, vbHide)
Application.Wait (Now + TimeValue("0:00:2"))
'SendKeys "^{ENTER}", True
Application.Wait (Now + TimeValue("0:00:2"))
'SendKeys "^{ENTER}", True
 
End Sub

 

 

P.S. Zamiast " ", można użyć zapisu Chr(32), zamiast """" - Chr(34) itd.

[ Chr(...) ]  [ Character set (0 - 127) ]

1
komentarz 26 sierpnia 2021 przez morking Nowicjusz (160 p.)
Dzięki za pomoc :D

Podobne pytania

+1 głos
0 odpowiedzi 109 wizyt
+1 głos
2 odpowiedzi 137 wizyt
pytanie zadane 8 listopada 2021 w Visual Basic przez Quba Użytkownik (740 p.)
+1 głos
1 odpowiedź 215 wizyt
pytanie zadane 11 maja 2021 w Visual Basic przez Misiek Mądrala (5,260 p.)

88,701 zapytań

137,307 odpowiedzi

306,729 komentarzy

58,891 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...