Arrays 格式化数组中的特定变量

Arrays 格式化数组中的特定变量,arrays,excel,vba,outlook,Arrays,Excel,Vba,Outlook,我从Excel电子表格中获取信息,并将其放入电子邮件中发送 我有一个表格要显示在消息的末尾。我用HTML创建表,用数组填充变量,以更有效地创建这些变量 表中的一列应该用百分比格式化,另一列用货币格式化。如何在保留数组的同时格式化这些变量 Sub email() Dim mailsubject As String 'Variable that carries the subject of the email Dim mailbody As String 'Varia

我从Excel电子表格中获取信息,并将其放入电子邮件中发送

我有一个表格要显示在消息的末尾。我用HTML创建表,用数组填充变量,以更有效地创建这些变量

表中的一列应该用百分比格式化,另一列用货币格式化。如何在保留数组的同时格式化这些变量

Sub email()

Dim mailsubject As String       'Variable that carries the subject of the email
Dim mailbody As String          'Variable that carries the body of the email
Dim tabledata(2 To 7, 21 To 28) As String
Dim i As Integer                'i and j are auxiliary variables to create the array
Dim j As Integer

'::::::::::::::Among these are the variables I want to format:::::::::::::::

For i = 2 To 7

    For j = 21 To 28

        tabledata(i, j) = Cells(i, j).Value            

'::::::::::::::tabledata(3 to 7, 27) needs to be formatted as percentage, and tabledata(3 to 7, 28) as percentage with two decimal digits.:::::::::::::::::::

    Next

Next

Dim OutlookApp As Outlook.Application
Dim MItem As Outlook.mailitem

Set OutlookApp = New Outlook.Application

mailsubject = "PRODUCT IDEA"

mailbody = "<TABLE BORDER='1'    WIDTH='10%'   CELLPADDING='1' CELLSPACING='1'><TR><TH COLSPAN='8'><BR><H3></H3>" _
               & "</TH></TR><TR><TH>" & tabledata(2, 21) & "</TH><TH>" & tabledata(2, 22) & "</TH><TH>" & tabledata(2, 23) & "</TH><TH>" & tabledata(2, 24) _
               & "</TH><TH>" & tabledata(2, 25) & "</TH><TH>" & tabledata(2, 26) & "</TH><TH>" & tabledata(2, 27) & "</TH><TH>" & tabledata(2, 28) & "</TH></TR>" _
               & "<TR><TD>" & tabledata(3, 21) & "</TD><TD>" & tabledata(3, 22) & "</TD><TD>" & tabledata(3, 23) & "</TD><TD>" & tabledata(3, 24) & "</TD>" _
               & "<TD>" & tabledata(3, 25) & "</TD><TD>" & tabledata(3, 26) & "</TD><TD>" & tabledata(3, 27) & "</TD><TD>" & tabledata(3, 28) & "</TD></TR>" _
               & "<TR><TD>" & tabledata(4, 21) & "</TD><TD>" & tabledata(4, 22) & "</TD><TD>" & tabledata(4, 23) & "</TD><TD>" & tabledata(4, 24) & "</TD>" _
               & "<TD>" & tabledata(4, 25) & "</TD><TD>" & tabledata(4, 26) & "</TD><TD>" & tabledata(4, 27) & "</TD><TD>" & tabledata(4, 28) & "</TD></TR>" _
               & "<TR><TD>" & tabledata(5, 21) & "</TD><TD>" & tabledata(5, 22) & "</TD><TD>" & tabledata(5, 23) & "</TD><TD>" & tabledata(5, 24) & "</TD>" _
               & "<TD>" & tabledata(5, 25) & "</TD><TD>" & tabledata(5, 26) & "</TD><TD>" & tabledata(5, 27) & "</TD><TD>" & tabledata(5, 28) & "</TD></TR>" _
               & "<TR><TD>" & tabledata(6, 21) & "</TD><TD>" & tabledata(6, 22) & "</TD><TD>" & tabledata(6, 23) & "</TD><TD>" & tabledata(6, 24) & "</TD>" _
               & "<TD>" & tabledata(6, 25) & "</TD><TD>" & tabledata(6, 26) & "</TD><TD>" & tabledata(6, 27) & "</TD><TD>" & tabledata(6, 28) & "</TD></TR>" _
               & "<TR><TD>" & tabledata(7, 21) & "</TD><TD>" & tabledata(7, 22) & "</TD><TD>" & tabledata(7, 23) & "</TD><TD>" & tabledata(7, 24) & "</TD>" _
               & "<TD>" & tabledata(7, 25) & "</TD><TD>" & tabledata(7, 26) & "</TD><TD>" & tabledata(7, 27) & "</TD><TD>" & tabledata(7, 28) & "</TD></TR>" _
               & "</TABLE>"

Set MItem = OutlookApp.CreateItem(olmailitem)
With MItem
        .Subject = mailsubject
        .To = "example@xyz.com"
        .HTMLBody = mailbody
        .Save
        .Display
End With

End Sub
Sub-email()
Dim mailsubject As String'变量,该变量携带电子邮件的主题
Dim mailbody As String'变量,该变量携带电子邮件正文
Dim tabledata(2到7,21到28)作为字符串
Dim i作为整数'i和j是创建数组的辅助变量
作为整数的Dim j
“::::::其中有我要格式化的变量:
对于i=2到7
对于j=21到28
tabledata(i,j)=单元格(i,j).值
“::::::tabledata(3到7,27)需要格式化为百分比,tabledata(3到7,28)需要格式化为百分比,并带有两个十进制数字:
下一个
下一个
Dim OutlookApp作为Outlook.Application
将MItem设置为Outlook.mailitem
Set-OutlookApp=新建Outlook.Application
mailsubject=“产品理念”
邮件正文=“
”_ &“&tabledata(2,21)&”“与tabledata(2,22)&”“与tabledata(2,23)&”“与tabledata(2,24)_ &&tabledata(2,25)&&tabledata(2,26)&&tabledata(2,27)&&tabledata(2,28)&&_ &&tabledata(3,21)&&tabledata(3,22)&&tabledata(3,23)&&tabledata(3,24)&&_ &&tabledata(3,25)&&tabledata(3,26)&&tabledata(3,27)&&tabledata(3,28)&&_ &&tabledata(4,21)&&tabledata(4,22)&&tabledata(4,23)&&tabledata(4,24)&&_ &&tabledata(4,25)&&tabledata(4,26)&&tabledata(4,27)&&tabledata(4,28)&&_ &&tabledata(5,21)&&tabledata(5,22)&&tabledata(5,23)&&tabledata(5,24)&&_ &&tabledata(5,25)&&tabledata(5,26)&&tabledata(5,27)&&tabledata(5,28)&&_ &&tabledata(6,21)&&tabledata(6,22)&&tabledata(6,23)&&tabledata(6,24)&&_ &&tabledata(6,25)&&tabledata(6,26)&&tabledata(6,27)&&tabledata(6,28)&&_ &&tabledata(7,21)&&tabledata(7,22)&&tabledata(7,23)&&tabledata(7,24)&&_ &&tabledata(7,25)&&tabledata(7,26)&&tabledata(7,27)&&tabledata(7,28)&&_ & "" 设置MItem=OutlookApp.CreateItem(olmailitem) 含螨 .Subject=邮件主题 .To=”example@xyz.com" .HTMLBody=邮件正文 拯救 陈列 以 端接头
根据
j
列号从单元格值填充表格数据时,将其格式化:

For j = 21 to 28
   tabledata(2, j) = Cells(2, j).Value
Next

For i = 3 to 7
    For j = 21 to 26
       tabledata(i, j) = Cells(i, j).Value
    Next
    tabledata(i, 27) = Format(Cells(i, 27).Value, "0%")
    tabledata(i, 28) = Format(Cells(i, 28).Value, "0.00%")
Next

在这种情况下,
MyStr
会是一个新字符串吗?我减少了多余的代码,并添加了一些注释,这些注释应该会澄清一些事情。希望这是有意义的,如果您不清楚此代码在示例代码中的位置,请告诉我。