【问题标题】:Information appears in a message box, how do I export the info from the message box to MS Word?信息出现在消息框中,如何将信息从消息框中导出到 MS Word?
【发布时间】:2016-03-16 17:19:13
【问题描述】:

我编写了计算 if-then 条件值然后出现在消息框中的代码。如何将消息框导出到 MS Word?有没有可以导出到 MS Word 的函数,而不是 Msgbox?我可以将它从 Debug.print 转换成 word 吗?

Sub Way_EatFresh()

Dim ws As Worksheet, wsB As Worksheet
Set ws = Worksheets("Overview")
Set wsB = Worksheets("Billing Rates")

Dim trueCount As Integer
Dim i As Integer
Dim Cst, Hrs


For i = 1 To 11

If ws.Range(Chr(65 + i) & "36").Value = "True" Then
    trueCount = trueCount + 1
    Cst = Cst + wsB.Range(Chr(66 + i) & "33").Value
    Hrs = Hrs + wsB.Range(Chr(66 + i) & "25").Value
    Scope = Scope + wsB.Range(Chr(66 + i) & "150").Value
End If

If ws.Range(Chr(65 + i) & "37").Value = "True" Then
    trueCount = trueCount + 1
    Cst = Cst + wsB.Range(Chr(66 + i) & "34").Value
    Hrs = Hrs + wsB.Range(Chr(66 + i) & "26").Value
    Scope = Scope + wsB.Range(Chr(66 + i) & "150").Value
End If

If ws.Range(Chr(65 + i) & "38").Value = "True" Then
    trueCount = trueCount + 1
    Cst = Cst + wsB.Range(Chr(66 + i) & "35").Value
    Hrs = Hrs + wsB.Range(Chr(66 + i) & "27").Value
    Scope = Scope + wsB.Range(Chr(66 + i) & "150").Value
End If

If ws.Range(Chr(65 + i) & "40").Value = "True" Then
    trueCount = trueCount + 1
    Cst = Cst + wsB.Range(Chr(66 + i) & "49").Value
    Hrs = Hrs + wsB.Range(Chr(66 + i) & "41").Value
    Scope = Scope + wsB.Range(Chr(66 + i) & "150").Value
End If

 If ws.Range(Chr(65 + i) & "41").Value = "True" Then
    trueCount = trueCount + 1
    Cst = Cst + wsB.Range(Chr(66 + i) & "50").Value
    Hrs = Hrs + wsB.Range(Chr(66 + i) & "42").Value
    Scope = Scope + wsB.Range(Chr(66 + i) & "150").Value
End If

 If ws.Range(Chr(65 + i) & "42").Value = "True" Then
    trueCount = trueCount + 1
    Cst = Cst + wsB.Range(Chr(66 + i) & "51").Value
    Hrs = Hrs + wsB.Range(Chr(66 + i) & "43").Value
    Scope = Scope + wsB.Range(Chr(66 + i) & "150").Value
End If

Next i

If trueCount > 0 Then
   MsgBox "Cost: " & Cst _
    & vbNewLine & "Hours: " & Hrs _
    & vbNewLine & "Scope: " & Scope _

End If

If trueCount = 0 Then
     MsgBox "Please select engagement components."
End If
End Sub

【问题讨论】:

  • 到 Word 中的哪个位置?新文件?现有文档?
  • 新建一个word文档
  • 虽然我肯定会满足于现有的文件
  • 虽然无法“转换”您的消息框。您可以使用已有的变量(Cst、Hrs、Scope)写入新的 microsoft word 文档。只需写入此链接中所示的“WordDoc”变量:stackoverflow.com/questions/16418292/vba-open-word-from-excel
  • 这样会不会把excel宏生成的信息导出到word?

标签: vba excel ms-word export


【解决方案1】:

我的工作使用这种类型的代码

Sub demo()
'If trueCount > 0 Then
Cst = "1"
hrs = "12"
scope = "none"
   Data = "Cost: " & Cst _
    & vbNewLine & "Hours: " & hrs _
    & vbNewLine & "Scope: " & scope
   'MsgBox Data
   Dim objWord
   Dim objDoc
   Set objWord = CreateObject("Word.Application")
   Set objDoc = objWord.Documents.Add
   objWord.Visible = True
   objDoc.Range.Text = Data
End Sub

【讨论】:

  • 这太棒了!!谢谢!谢谢!谢谢!
猜你喜欢
  • 2012-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 2011-10-28
  • 1970-01-01
相关资源
最近更新 更多