2016-03-16 42 views
1

我编写了计算if-then条件值然后出现在消息框中的代码。如何将消息框导出到MS Word?有没有一个函数,而不是Msgbox,我可以导出到MS Word?我可以将它从Debug.print转换为单词吗?信息出现在消息框中,我如何将消息框中的信息导出到MS 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 
+0

在哪里?一份新文件?现有的文件? –

+0

给一个新的word文档 – CodingNewb

+0

尽管我肯定会解决一个现有的文档 – CodingNewb

回答

2

我在Word中使用这种类型的代码为我工作

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 
+0

这真是太棒了!!谢谢!谢谢!谢谢! – CodingNewb