gpt4 book ai didi

excel - 除以变量给出假零结果

转载 作者:行者123 更新时间:2023-12-03 01:31:52 24 4
gpt4 key购买 nike

我有一些代码从用户表单中获取一些输入,然后将它们输入到我的电子表格中,这没什么棘手的。问题是我的 2 条数据,它们是除以另外 2 个变量的结果,无论真实答案是什么,结果总是为零。但是,如果我进入电子表格本身并使用相同的输入进行计算,它就会完全按照我的需要工作。引起我悲伤的变量是“rRate”和“pRate”。我的变量声明有问题还是其他问题?

Dim rRate As Long
Dim sTime As Date
Dim fTime As Date
Dim tTime As Date
Dim pRate As Long
Dim Rejects As Long
Dim tProd As Long

Rejects = frmProduction.lblTotalRejects.Caption
tProd = frmProduction.lblTotal.Caption

rRate = Rejects / tProd 'msgbox gives 0

sTime = ThisWorkbook.ActiveSheet.Cells(lRow, "B")
fTime = Now
tTime = fTime - sTime

pRate = tTime / tProd 'msgbox gives 0

ThisWorkbook.ActiveSheet.Cells(lRow, "O") = Rejects
ThisWorkbook.ActiveSheet.Cells(lRow, "P") = tProd
ThisWorkbook.ActiveSheet.Cells(lRow, "AH") = Format(rRate, Percent) 'not working
ThisWorkbook.ActiveSheet.Cells(lRow, "AI") = Format(tTime, "h:mm")
ThisWorkbook.ActiveSheet.Cells(lRow, "AL") = Format(pRate, "h:mm:ss") 'not working

最佳答案

正如您所猜测的,问题是变量声明。

rRatepRate两者都是除法的结果:rRate = Rejects / tProdpRate = tTime / tProd 。由于变量被声明为As Long,因此结果的任何小数位都将被默默地丢弃。 。

例如,如果您期望 rRate如果声明 As Long 则为 0.475小数位将被丢弃,它将等于 0,并且您的 msgBox将返回 0。相反,您可以声明它们 As Double .

请参阅LongDouble数据类型以获取更多详细信息。

关于excel - 除以变量给出假零结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52068468/

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