因此,我正在制作一个宏,它使用变量MV和IV显示投资组合的资本收益,它基于工作表中的值,它基于在组合框cmbSummary中输入的文本。每次尝试运行宏时,都会弹出带有0的消息框,这不是正确的值。如何解决此问题并使消息框显示正确的值?
Dim portfolio As String
portfolio = Me.cmbSummary.Text
Dim ws As Worksheet
Set ws = Sheets(Me.cmbSummary.Text)
Dim lastrow As Integer
lastrow = Sheets(portfolio).Range("B" & Sheets(portfolio).Rows.Count).End(xlUp).Row
Dim MV As Long
MV = WorksheetFunction.Sum(ws.Columns("L:L"))
Dim IV As Long
IV = WorksheetFunction.Sum(ws.Columns("I:I"))
Dim CapGain As Long
CapGain = (MV - IV) / IV
MsgBox CapGain
发布于 2020-04-26 16:54:50
将变量类型改为双倍
Dim CapGain As Long
至
Dim CapGain As Double
发布于 2020-04-26 17:28:47
这是故障在于测试过程的情况之一。因此,您的问题有不同的答案,取决于您想要修复您的项目或您的测试过程。
因此,我们要做的是注意调用的三个变量的数据类型、MV、IV以及结果。其次,MsgBox是一个文本处理程序。不要指望它比你自称更擅长处理数字。如果你不注意,MsgBox很可能会“认为”你不在乎。
https://stackoverflow.com/questions/61450021
复制