VBA未在工作表上显示任何结果

VBA未在工作表上显示任何结果,vba,Vba,为什么在运行代码时工作表中没有结果。我的代码有问题吗。有人能核实一下吗。这是我的代码: Private Sub CommandButton1_Click() Dim Globalstrahlung, Koll_ein_o, Koll_aus_o, Aussentemp, MIDsolar As Double Dim a1, a2, b1, b2, c1, c2, d1, d2, e1, e2, f1, f2, g1, g2, x As Double Dim cpTyf, RohTyf As Do

为什么在运行代码时工作表中没有结果。我的代码有问题吗。有人能核实一下吗。这是我的代码:

Private Sub CommandButton1_Click()
Dim Globalstrahlung, Koll_ein_o, Koll_aus_o, Aussentemp, MIDsolar As Double
Dim a1, a2, b1, b2, c1, c2, d1, d2, e1, e2, f1, f2, g1, g2, x As Double
Dim cpTyf, RohTyf As Double
Dim Psolar, Puse_coll, Coll_eff As Double
Dim iCntr As Long

For iCntr = 3 To 8640

    Globalstrahlung = Range("B" & iCntr)
    Koll_ein_o = Range("C" & iCntr)
    Koll_aus_o = Range("D" & iCntr)
    Aussentemp = Range("E" & iCntr)
    MIDsolar = Range("F" & iCntr)

    x = (Koll_ein_o + Koll_aus_o) / 2

    x = Range("AW" & iCntr)

    'Function cp(t) Tyfocor 35%
    a1 = 3.5199
    b1 = 0.0042
    c1 = -0.00002
    d1 = 0.0000009
    e1 = -0.00000002
    f1 = 0.0000000001
    g1 = -0.0000000000005

    cpTyf = a1 + (b1 * x) + (c1 * (x ^ 2)) + (d1 * (x ^ 3)) + (e1 * (x ^ 4)) + (f1 * (x ^ 5)) + (g1 * (x ^ 6))

    cpTyf = Range("AX" & iCntr)

    'Function Roh(t) Tyfocor 35%
    a2 = 1045
    b2 = -0.453
    c2 = 0.0051
    d2 = 0.00007
    e2 = -0.0000007
    f2 = 0.000000004
    g2 = -0.00000000001

    RohTyf = a2 + (b2 * x) + (c2 * (x ^ 2)) + (d2 * (x ^ 3)) + (e2 * (x ^ 4)) + (f2 * (x ^ 5)) + (g2 * (x ^ 6))

    RohTyf = Range("AY" & iCntr)

    'Collector capacity

    Puse_coll = (MIDsolar / 3600) * cpTyf * RohTyf * (Koll_aus_o - Koll_ein_o)

    Puse_coll = Range("AZ" & iCntr)

    'Solar capacity
    Psolar = Globalstrahlung * 18.12

    Psolar = Range("BA" & iCntr)

    'Collector efficiency
    If Globalstrahlung = 0 Then
    Coll_eff = 0

    ElseIf Globalstrahlung <> 0 Then
    Coll_eff = (Puse_coll) / (Psolar)

    End If

Coll_eff = Range("BB" & iCntr)

Range("BB" & iCntr).HorizontalAlignment = xlCenter

Range("BB" & iCntr).NumberFormat = "0.00"


Next

End Sub
Private子命令按钮1\u单击()
黯淡的环球旅行,Koll_ein_o,Koll_aus_o,Ausentemp,中太阳双倍
尺寸a1、a2、b1、b2、c1、c2、d1、d2、e1、e2、f1、f2、g1、g2、x为双精度
暗cpTyf,RohTyf为双色
暗淡的腰大肌,Puse_coll,coll_eff双倍
暗iCntr与长iCntr相同
对于iCntr=3至8640
Globalstrahlung=范围(“B”和iCntr)
Koll_ein_o=范围(“C”和iCntr)
Koll_aus_o=范围(“D”和iCntr)
Aussentemp=范围(“E”和iCntr)
中太阳=射程(“F”和iCntr)
x=(Koll_ein_o+Koll_aus_o)/2
x=范围(“AW”和iCntr)
“功能cp(t)Tyfocor 35%
a1=3.5199
b1=0.0042
c1=-0.00002
d1=0.0000009
e1=-0.00000002
f1=0.0000000001
g1=-0.0000000000005
cpTyf=a1+(b1*x)+(c1*(x^2))+(d1*(x^3))+(e1*(x^4))+(f1*(x^5))+(g1*(x^6))
cpTyf=范围(“AX”和iCntr)
'功能Roh(t)Tyfocor 35%
a2=1045
b2=-0.453
c2=0.0051
d2=0.00007
e2=-0.0000007
f2=0.000000004
g2=-0.00000000001
RohTyf=a2+(b2*x)+(c2*(x^2))+(d2*(x^3))+(e2*(x^4))+(f2*(x^5))+(g2*(x^6))
RohTyf=范围(“AY”和iCntr)
“收集器容量”
Puse_coll=(中太阳/3600)*cpTyf*RohTyf*(Koll_aus_o-Koll_ein_o)
Puse_coll=范围(“AZ”和iCntr)
“太阳能容量
Psolar=全球贸易*18.12
Psolar=范围(“BA”和iCntr)
“收集器效率
如果Globalstrahlung=0,则
Coll_eff=0
否则,全球贸易额将为0
Coll_eff=(Puse_Coll)/(Psolar)
如果结束
Coll_eff=范围(“BB”和iCntr)
范围(“BB”和iCntr)。水平对齐=xlCenter
范围(“BB”和iCntr).NumberFormat=“0.00”
下一个
端接头

尝试使用特定的表格限定
范围
方法,例如

Sheet1.Range("BB" & iCntr).NumberFormat = "0.00"

您可以使用With语句保存一些键入,如下所示:

With Sheets("My Sheet")

    ' more code

    .Range("BB" & iCntr).NumberFormat = "0.00"
End With

尝试使用特定的表格限定
范围
方法,例如

Sheet1.Range("BB" & iCntr).NumberFormat = "0.00"

您可以使用With语句保存一些键入,如下所示:

With Sheets("My Sheet")

    ' more code

    .Range("BB" & iCntr).NumberFormat = "0.00"
End With

尝试使用特定的表格限定
范围
方法,例如

Sheet1.Range("BB" & iCntr).NumberFormat = "0.00"

您可以使用With语句保存一些键入,如下所示:

With Sheets("My Sheet")

    ' more code

    .Range("BB" & iCntr).NumberFormat = "0.00"
End With

尝试使用特定的表格限定
范围
方法,例如

Sheet1.Range("BB" & iCntr).NumberFormat = "0.00"

您可以使用With语句保存一些键入,如下所示:

With Sheets("My Sheet")

    ' more code

    .Range("BB" & iCntr).NumberFormat = "0.00"
End With

当你这样做的时候:

With Sheets("My Sheet")

    ' more code

    .Range("BB" & iCntr).NumberFormat = "0.00"
End With
尺寸a1、a2、b1、b2、c1、c2、d1、d2、e1、e2、f1、f2、g1、g2、x为双精度

只有
x
声明为双精度数据类型,其他所有内容都声明为变量

第二点,类似于

cpTyf=范围(“AX”和iCntr)

如果cpTyf是一个变量,则可能会导致意外结果,因为您尚未明确声明要访问范围对象的
.Value
属性

但在回答你的问题时,我将假设你的语句是以错误的方式运行的(除非你想赋值,然后立即赋值?)

而不是:

Puse_coll = (MIDsolar / 3600) * cpTyf * RohTyf * (Koll_aus_o - Koll_ein_o)

Puse_coll = Range("AZ" & iCntr)
使用


当你这样做的时候:

With Sheets("My Sheet")

    ' more code

    .Range("BB" & iCntr).NumberFormat = "0.00"
End With
尺寸a1、a2、b1、b2、c1、c2、d1、d2、e1、e2、f1、f2、g1、g2、x为双精度

只有
x
声明为双精度数据类型,其他所有内容都声明为变量

第二点,类似于

cpTyf=范围(“AX”和iCntr)

如果cpTyf是一个变量,则可能会导致意外结果,因为您尚未明确声明要访问范围对象的
.Value
属性

但在回答你的问题时,我将假设你的语句是以错误的方式运行的(除非你想赋值,然后立即赋值?)

而不是:

Puse_coll = (MIDsolar / 3600) * cpTyf * RohTyf * (Koll_aus_o - Koll_ein_o)

Puse_coll = Range("AZ" & iCntr)
使用


当你这样做的时候:

With Sheets("My Sheet")

    ' more code

    .Range("BB" & iCntr).NumberFormat = "0.00"
End With
尺寸a1、a2、b1、b2、c1、c2、d1、d2、e1、e2、f1、f2、g1、g2、x为双精度

只有
x
声明为双精度数据类型,其他所有内容都声明为变量

第二点,类似于

cpTyf=范围(“AX”和iCntr)

如果cpTyf是一个变量,则可能会导致意外结果,因为您尚未明确声明要访问范围对象的
.Value
属性

但在回答你的问题时,我将假设你的语句是以错误的方式运行的(除非你想赋值,然后立即赋值?)

而不是:

Puse_coll = (MIDsolar / 3600) * cpTyf * RohTyf * (Koll_aus_o - Koll_ein_o)

Puse_coll = Range("AZ" & iCntr)
使用


当你这样做的时候:

With Sheets("My Sheet")

    ' more code

    .Range("BB" & iCntr).NumberFormat = "0.00"
End With
尺寸a1、a2、b1、b2、c1、c2、d1、d2、e1、e2、f1、f2、g1、g2、x为双精度

只有
x
声明为双精度数据类型,其他所有内容都声明为变量

第二点,类似于

cpTyf=范围(“AX”和iCntr)

如果cpTyf是一个变量,则可能会导致意外结果,因为您尚未明确声明要访问范围对象的
.Value
属性

但在回答你的问题时,我将假设你的语句是以错误的方式运行的(除非你想赋值,然后立即赋值?)

而不是:

Puse_coll = (MIDsolar / 3600) * cpTyf * RohTyf * (Koll_aus_o - Koll_ein_o)

Puse_coll = Range("AZ" & iCntr)
使用


它在我输入.Value之后工作。非常感谢你。你说过,如果我这样做:Dim a1,a2,b1,b2,c1,c2,d1,d2,e1,e2,f1,f2,g1,g2,x是Double。只有x会被声明为Double。如果我希望a1和其他两个都是双精度的,我应该这样做吗:Dim a1是双精度的,(下一句话)Dim a2是双精度的是,您不需要使用单独的句子,但是下面的操作将起作用:
Dim a as