gpt4 book ai didi

vba - 运行时错误 13 : Type mismatch

转载 作者:行者123 更新时间:2023-12-04 20:41:04 29 4
gpt4 key购买 nike

这是我第一次从头开始编码,确实是一个非常愚蠢的问题。

为什么我不断收到此错误?

Runtime Error '13' : Type mismatch



我在 B1 中的值是一个整数
Private Sub Workbook_Open()
xdate = Worksheets("sheet1").Range("A1")
lsdate = DateAdd("d", -7, Date)
'MsgBox lsdate
If Day(lsdate) > Day(xdate) Then
Worksheets("sheet1").Range ("B1") * 1 = result
Else
Worksheets("sheet1").Range ("B1") * 1.07 = result
End If
Range("c1").Value = result
End Sub

我已将我的代码进一步编辑为以下内容,但无法使条件正常工作
'To create the following condition
'If less than 7 days interest = 0%
'if 8 to 30 days interest = 7%
'if more than 31 days interest = 9%

Sub Workbook_Open()

For i = 1 To 3 'Rows.Count
xdate = Cells(i, 1)
'MsgBox Cells(i, 1)
nulldate = DateAdd("d", -7, Date)
irate7late = DateAdd("d", -8, Date)
irate7early = DateAdd("d", -30, Date)


If Day(nulldate) < Day(xdate) Then
result = Cells(i, 2) * 1
ElseIf Day(irate7early) <= Day(xdate) And Day(xdate) <= Day(irate7late) Then
'30/9/2015 20/10/2015 20/10/2015 22/10/2015
result = Cells(i, 2) * 1.07

ElseIf Day(irate7early) > Day(xdate) Then
result = Cells(i, 2) * 1.09
End If

Cells(i, 3).Value = result

Next i

End Sub

最佳答案

您在编程方面似乎很新,所以我会简单地解释一下:

当您尝试分配 valuevariable在几乎所有语言中,您都使用:

variable = value

所以可以在 value上做很多操作,它位于等号 = 的右侧.

但是你不能在等于 = 的左边进行操作当您简单地分配 valuevariable .测试时几乎可以进行任何操作 2 variables但是你会有一个像 If 这样的关键字或 While在代码行的开头。

所以你的代码的问题是你颠倒了 value 的顺序。和 variable并试图做 value * 1 = variable
这是您更正的代码(我将其缩进以便可以轻松阅读):
Private Sub Workbook_Open()
xdate = Worksheets("sheet1").Range("A1")
lsdate = DateAdd("d", -7, Date)
'MsgBox lsdate
If Day(lsdate) > Day(xdate) Then
result = Worksheets("sheet1").Range ("B1") * 1
Else
result = Worksheets("sheet1").Range ("B1") * 1.07
End If

Sheets("Sheet_name").Range("c1").Value = result

End Sub

而且您应该始终引用您正在使用的工作表,因为以前,您的代码没有指定 C1 在哪个工作表上。应该是。

所以在这里,只需更改 Sheet_name无论您的工作表名称是什么!

关于vba - 运行时错误 13 : Type mismatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33386385/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com