为何vba代码可以运行,却不能在excel中显示结果出来?
发布网友
发布时间:2023-08-24 06:15
我来回答
共2个回答
热心网友
时间:2024-12-04 01:33
我测试过了,结果如下:
1. 原代码可以运行;
2. 结果也是有的,只是存放在宏所在文件的 Sheet2 工作表中(注意:这个Sheet2有鬼);
3. 关键是:按原代码中的写法,上面所说的 Sheet2,它与工作表名称、与工作表顺序位置都没有关系;它并不是指名字叫“Sheet2” 的工作表,也不是顺序第2的工作表,而是在工作表创建时内置的一个不重复的ID号,一旦你删除一个工作表,它对应的这个内置ID号永远都不可能在这个工作簿中再得到(这个ID号在Excel中是看不到的,VBA可以得到,VBA编辑器的资源管理器中可以看到)。
如果楼主本意不是要用那个内置ID为 Sheet2 的工作表,而是想用名叫“Sheet2” 的工作表,建议这么修改下:把代码中的 Sheet2 替换成 Sheets("Sheet2")。这样,这个宏会对当前工作簿有效。
GoodLuck!
热心网友
时间:2024-12-04 01:33
Sub test()
Dim a(14, 7) As Single
For i = 0 To 14
For j = 0 To 7
aa = Cells(4 + i, 102 + 2 * j).Address(0, 0)
a(i, j) = Sheet1.Cells(4 + i, 102 + 2 * j).Value
Select Case a(i, j)
Case 1 To 3599
Sheet1.Cells(4 + i, 102 + 2 * j).Value = 1
Case 3600 To 7799
Sheet1.Cells(4 + i, 102 + 2 * j).Value = 2
Case 7800 To 12599
Sheet1.Cells(4 + i, 102 + 2 * j).Value = 3
Case 12600 To 15000
Sheet1.Cells(4 + i, 102 + 2 * j).Value = 4
End Select
Next j
Next i
End Sub