我正在 Excel 2002 中编写一个 VBA 宏来操作来自设备的日期,该设备在 4 个通道中的每个通道上提供 10 个值。
当我尝试将一个整数除以另一个整数来计算行和列时,结果显示它正在使用银行家四舍五入,就好像它是一个浮点变量一样。
Sub TestRounding()
Dim Y As Integer
Dim Field As Integer
Dim Channel As Integer
ActiveWorkbook.Sheets.Add
ActiveWorkbook.ActiveSheet.Cells.Select
range("A1").Select
For Field = 1 To 40
Channel = (Field - 1) / 10
Y = Field - 1
ActiveSheet.range("A1").Offset(Y, Channel).Value = Field
Next Field
End Sub
Y 是放置输出的行,我通常设置为
Y = (Field -1) mod 10
但我把它留作
Y = Field - 1
在生成的工作表中更清楚地说明这一点。
通道应该是输出放入的列。
当我运行这个宏时,值 1-6 放入 A 列,然后 7-15 放入 B 列,16-26 放入 C 列,然后 27-35 放入 D 列,然后 36-40 放入 E 列.
我所期望的是值 1-10 进入 A 列,11-20 进入 B 列,21-30 进入 C 列,31-40 进入 D 列。
我习惯于 C 和 C++,如果我将一个整数除以另一个整数,则使用整数数学计算结果。VBA 有什么不同?