Vba 将数据从工作表复制到html文件并发送到邮件

Vba 将数据从工作表复制到html文件并发送到邮件,vba,excel,Vba,Excel,我从不同的Excel表格中收集数据,将表格和内容粘贴到一张表格中,然后将其推送到Outlook的html文件中 将数据从工作表粘贴到html文件时,它会计算数据所在的列数 例如,在一张纸上,我在第一行粘贴了大约500个字符的文本。在下一行,我粘贴了一张5*10的桌子。将数据复制到html文件时,它只计算10列,并复制屏幕截图中黄色的数据 如何将所有数据从Excel复制到html文件 如果我使用Sheet.UsedRange,那么它将根据列复制数据 代码: 变暗rng As范围 Dim OutA

我从不同的Excel表格中收集数据,将表格和内容粘贴到一张表格中,然后将其推送到Outlook的html文件中

将数据从工作表粘贴到html文件时,它会计算数据所在的列数

例如,在一张纸上,我在第一行粘贴了大约500个字符的文本。在下一行,我粘贴了一张5*10的桌子。将数据复制到html文件时,它只计算10列,并复制屏幕截图中黄色的数据

如何将所有数据从Excel复制到html文件

如果我使用Sheet.UsedRange,那么它将根据列复制数据

代码:

变暗rng As范围 Dim OutApp作为对象 将邮件变暗为对象 应用 .EnableEvents=False .ScreenUpdate=False 以 模糊HTML内容 Dim RangetoHTML 暗柱 昏暗的最后一排 暗色拉丝考 将文件设置为字符串 TempFile=Environ$(“temp”)和“\”格式(现在是“dd-mm-yy h-mm-ss”)和“.htm” 对于ActiveWorkbook.Worksheets中的每个ws 如果(ws.Name“签名”和ws.Name“URL”),则 设置rng=无 设置rng=ws.UsedRange lastRow=ws.UsedRange.Rows(ws.UsedRange.Rows.Count).Row 设置rng=范围(单元格(1,1),单元格(最后一行,20)) '将工作表发布到htm文件 使用ActiveWorkbook.PublishObjects.Add(_ SourceType:=xlSourceRange_ 文件名:=临时文件_ 工作表:=ws.Name_ 来源:=ws.UsedRange.Address_ HtmlType:=xlHtmlStatic) .发布(真实) 以 '将htm文件中的所有数据读入RangetoHTML 设置fso=CreateObject(“Scripting.FileSystemObject”) 设置ts=fso.GetFile(TempFile).OpenAsTextStream(1,-2) RangetoHTML=ts.readall 关闭 RangetoHTML=Replace(RangetoHTML,“align=center x:publishsource=”_ “align=left x:publishsource=”) htmlContent=htmlContent&RangetoHTML '还可以使用图纸名称 '设置rng=工作表(“您的工作表”)。使用 如果结束 下一个ws Set-OutApp=CreateObject(“Outlook.Application”) Set-OutMail=OutApp.CreateItem(0) 出错时继续下一步 发邮件 .To=”sagarwal4@dow.com" .CC=“” .BCC=“” .Subject=“这是主题行” .HTMLBody=htmlContent .Send'或use.Display 以 错误转到0 应用 .EnableEvents=True .ScreenUpdate=True 以 发送邮件=无 设置应用程序=无
改用类似的方式:

Dim lastCell As Excel.Range

Set lastCell = Cells.Find(What:="*", After:=Cells(1, 1), Lookat:=xlPart, _
        LookIn:=xlFormulas, SearchOrder:=xlByRows, _
        SearchDirection:=xlPrevious,  MatchCase:=False)

Range("A1", lastCell).Copy

'// Rest of code here ....

范围是否始终相同?请共享一些代码!到目前为止,你能添加你的代码吗?
Dim lastCell As Excel.Range

Set lastCell = Cells.Find(What:="*", After:=Cells(1, 1), Lookat:=xlPart, _
        LookIn:=xlFormulas, SearchOrder:=xlByRows, _
        SearchDirection:=xlPrevious,  MatchCase:=False)

Range("A1", lastCell).Copy

'// Rest of code here ....