首页 > 解决方案 > 如何在 VBA 中调整此程序,以便将原始温度放置在转换温度旁边的单元格中?

问题描述

这是我的代码......它一直在说

SubConvertTemp()
Centigrade=MsgBox(Do you want to convert to centigrade?"),vbYesNo)
InputNumber=Val(InputBox("Enter a temperature for conversion?"))
If Centigradde= vbYes Then 
ConvertedTemp= ((9/5 *InputNumber)+32)
MsgBox((InputNumber & " degrees C converts to " & ConvertedTemp &" Degrees F."))
Else: ConvertedTemp=(5/9)*(InputNumber-32)
MsgBox(InputNumber & "degrees F converts to " & ConvertedTemp & "degrees C.")
Worksheets.("Sheet 1).Cells(InputNumber,ConvertedTemp).Offset(-1,0).Value="Name"
end sub

这段代码一直说语法错误?不知道为什么

标签: excelvba

解决方案


极少数的“语法”错别字:

Sub ConvertTemp()
    Centigrade = MsgBox("Do you want to convert to centigrade?", vbYesNo)
    InputNumber = Val(InputBox("Enter a temperature for conversion?"))
    If Centigradde = vbYes Then
        ConvertedTemp = ((9 / 5 * InputNumber) + 32)
        MsgBox ((InputNumber & " degrees C converts to " & ConvertedTemp & " Degrees F."))
    Else
        ConvertedTemp = (5 / 9) * (InputNumber - 32)
    End If
    MsgBox (InputNumber & " degrees F converts to " & ConvertedTemp & " degrees C.")
    Worksheets("Sheet1").Cells(InputNumber, ConvertedTemp).Offset(-1, 0).Value = "Name"
End Sub

编辑#1:

更好的版本:

Option Explicit

Sub ConvertTemp()

    Dim Centigrade As String, InputNumber As Variant, ConvertedTemp As Double

    Centigrade = MsgBox("Do you want to convert to centigrade?", vbYesNo)
    InputNumber = Val(InputBox("Enter a temperature for conversion?"))
    If Centigrade = vbYes Then
        ConvertedTemp = ((9 / 5 * InputNumber) + 32)
        MsgBox ((InputNumber & " degrees C converts to " & ConvertedTemp & " Degrees F."))
    Else
        ConvertedTemp = (5 / 9) * (InputNumber - 32)
    End If
    MsgBox (InputNumber & " degrees F converts to " & ConvertedTemp & " degrees C.")
    Worksheets("Sheet1").Cells(InputNumber, ConvertedTemp).Offset(-1, 0).Value = "Name"
End Sub

推荐阅读