Visual Basic 中的最大数据类型 excel vba 字符串失败
biggest data type in visual basic excel vba string failing
使用 excel 在 outlook 上发送邮件 vba
我正在发送一个带有 excel 宏的 html 但字符串无法加载 it.Even HTML 文件的总数几乎是 200kb 现在我正在使用,我知道它很大,但现在 100kb 或 200kb 没那么多了。
同时列也有它可以携带的数据的限制,我寻找 cdo 它不会工作,因为它需要
https://intaxing.in/mail。但是好像字符串有发送消息的限制,一半失败,只发送一半。
我只是附上一些代码供参考浪费时间是间隔的机制。
Public subject As String
Public ToEmailID As String
Public EmailBody As String
Public ToName As String
Public display As String
Private Sub CommandButton1_Click()
Dim i As Integer, j As String, timy As Date, head As String, base64 As String
timy = ActiveSheet.Range("m2")
j = ActiveSheet.Range("l2").Text
i = ActiveSheet.Range("n2").Text
j = i + j
EmailBody = ActiveSheet.Range("k2")
subject = ActiveSheet.Range("j2").Text
For i = i To j
ToEmailID = ActiveSheet.Cells(i, 2).Text
Call SendEmailUsingOutlook(subject, ToEmailID, EmailBody)
WasteTime (i)
Next i
End Sub
Sub SendEmailUsingOutlook(subject As String, ToEmailID As String, EmailBody As String)
'For Tips see: http://www.rondebruin.nl/win/winmail/Outlook/tips.htm
'Working in Office 2000-2016
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = ToEmailID
.CC = ""
.BCC = ""
.HTMLBody = EmailBody
Debug.Print EmailBody
'You can add a file like this
'.Attachments.Add ("C:\test.txt")
.Send 'or use .Display
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
如您所知,一个工作表单元格限制为 32,767 个字符。因此,与其从工作表单元格中获取字符串,不如直接从文件中获取。
首先,添加以下程序...
Public Function GetDataFromFile(ByVal fullName As String) As String
Dim data As String
Dim fileNum As Long
fileNum = FreeFile()
Open fullName For Input As #fileNum
data = Input(LOF(fileNum), fileNum)
Close #fileNum
GetDataFromFile = data
End Function
然后替换...
EmailBody = ActiveSheet.Range("k2")
与
EmailBody = GetDataFromFile("c:\users\domenic\desktop\sample.html")
相应地更改路径和文件名。
使用 excel 在 outlook 上发送邮件 vba
我正在发送一个带有 excel 宏的 html 但字符串无法加载 it.Even HTML 文件的总数几乎是 200kb 现在我正在使用,我知道它很大,但现在 100kb 或 200kb 没那么多了。
同时列也有它可以携带的数据的限制,我寻找 cdo 它不会工作,因为它需要
https://intaxing.in/mail。但是好像字符串有发送消息的限制,一半失败,只发送一半。
我只是附上一些代码供参考浪费时间是间隔的机制。
Public subject As String
Public ToEmailID As String
Public EmailBody As String
Public ToName As String
Public display As String
Private Sub CommandButton1_Click()
Dim i As Integer, j As String, timy As Date, head As String, base64 As String
timy = ActiveSheet.Range("m2")
j = ActiveSheet.Range("l2").Text
i = ActiveSheet.Range("n2").Text
j = i + j
EmailBody = ActiveSheet.Range("k2")
subject = ActiveSheet.Range("j2").Text
For i = i To j
ToEmailID = ActiveSheet.Cells(i, 2).Text
Call SendEmailUsingOutlook(subject, ToEmailID, EmailBody)
WasteTime (i)
Next i
End Sub
Sub SendEmailUsingOutlook(subject As String, ToEmailID As String, EmailBody As String)
'For Tips see: http://www.rondebruin.nl/win/winmail/Outlook/tips.htm
'Working in Office 2000-2016
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = ToEmailID
.CC = ""
.BCC = ""
.HTMLBody = EmailBody
Debug.Print EmailBody
'You can add a file like this
'.Attachments.Add ("C:\test.txt")
.Send 'or use .Display
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
如您所知,一个工作表单元格限制为 32,767 个字符。因此,与其从工作表单元格中获取字符串,不如直接从文件中获取。
首先,添加以下程序...
Public Function GetDataFromFile(ByVal fullName As String) As String
Dim data As String
Dim fileNum As Long
fileNum = FreeFile()
Open fullName For Input As #fileNum
data = Input(LOF(fileNum), fileNum)
Close #fileNum
GetDataFromFile = data
End Function
然后替换...
EmailBody = ActiveSheet.Range("k2")
与
EmailBody = GetDataFromFile("c:\users\domenic\desktop\sample.html")
相应地更改路径和文件名。