Excel VBA如何显示带符号的两个msgbox? Dim fg为双精度 将msg1设置为字符串 将msg2设置为字符串 将结果设置为整数 百分之二 fg=单元格(8,10)。数值 百分比=应用程序.工作表功能.汇总(fg*100,2) msg1=“脂肪占消耗热量的百分比:&&%” msg2=“推荐脂肪总摄入量:低于总热量的30%。” msg3=“建议您改变食物选择以降低脂肪” 如果fg>0.3,则 MsgBox msg1 MsgBox msg2,vb感叹号 结果=MsgBox msg3,vbYesNo 如果结果=vbYes,则 此工作簿.工作表(“每周膳食计划表”).激活 如果结束 如果结果=vbNo,则 此工作簿。工作表(“每日日志”)。激活 如果结束 如果结束 如果fg0.3时同时显示msg2和msg1。行MsgBox(msg2,vb惊叹号)中仍然存在snytax错误。请删除括号。现在可以了,谢谢@braX为什么在我点击ok时无法显示“每周用餐计划表”?请查看我的更新答案。

Excel VBA如何显示带符号的两个msgbox? Dim fg为双精度 将msg1设置为字符串 将msg2设置为字符串 将结果设置为整数 百分之二 fg=单元格(8,10)。数值 百分比=应用程序.工作表功能.汇总(fg*100,2) msg1=“脂肪占消耗热量的百分比:&&%” msg2=“推荐脂肪总摄入量:低于总热量的30%。” msg3=“建议您改变食物选择以降低脂肪” 如果fg>0.3,则 MsgBox msg1 MsgBox msg2,vb感叹号 结果=MsgBox msg3,vbYesNo 如果结果=vbYes,则 此工作簿.工作表(“每周膳食计划表”).激活 如果结束 如果结果=vbNo,则 此工作簿。工作表(“每日日志”)。激活 如果结束 如果结束 如果fg0.3时同时显示msg2和msg1。行MsgBox(msg2,vb惊叹号)中仍然存在snytax错误。请删除括号。现在可以了,谢谢@braX为什么在我点击ok时无法显示“每周用餐计划表”?请查看我的更新答案。,excel,vba,Excel,Vba,为什么当我单击“确定”时,程序无法显示“每周膳食计划表”您不需要将它们放在同一行 下面是if语句的工作原理 Dim fg As Double Dim msg1 As String Dim msg2 As String Dim result As Integer Dim percent As Double fg = Cells(8, 10).Value percent = Application.WorksheetFunction.roundup(fg * 100, 2) msg1 =

为什么当我单击“确定”时,程序无法显示“每周膳食计划表”

您不需要将它们放在同一行

下面是if语句的工作原理

Dim fg As Double
Dim msg1 As String
Dim msg2 As String
Dim result As Integer
Dim percent As Double


fg = Cells(8, 10).Value

percent = Application.WorksheetFunction.roundup(fg * 100, 2)


msg1 = "Fat as percentage of calories consumed:" & percent & "%"
msg2 = "Recommended total fat intake: less than 30% of total calories."
msg3 = "you are suggested to change your food choice to lower the fat"
If fg > 0.3 Then
    MsgBox msg1
    MsgBox msg2, vbExclamation
    result=MsgBox msg3, vbYesNo
    
    If result = vbYes Then
    ThisWorkbook.Sheets("Weekly Meal Planner").Activate
    end if
    If result = vbNo Then
    ThisWorkbook.Sheets("DAILY LOG").Activate
    End If
    
    
    
End If

If fg < 0.3 Then MsgBox (msg1)



End Sub
MsgBox
仅在需要圆括号返回值时才使用圆括号:

If fg > 0.3 Then 
  MsgBox msg2, vbExclamation
  MsgBox msg1
End If

要将其用作
子例程
,请不要使用括号

Dim result as Variant
result = MsgBox(msg3, vbYesNo)
MsgBox "test"
要将其用作
函数
,请包含括号

Dim result as Variant
result = MsgBox(msg3, vbYesNo)
MsgBox "test"
您还可以使用图标和按钮选项:

result = MsgBox("test")

为什么需要将它们放在一行上?@braX因为我想在fg>0.3时同时显示msg2和msg1。行MsgBox(msg2,vb惊叹号)中仍然存在snytax错误。请删除括号。现在可以了,谢谢@braX为什么在我点击ok时无法显示“每周用餐计划表”?请查看我的更新答案。