【发布时间】:2019-10-11 08:20:12
【问题描述】:
一直在尝试获取一个 msgbox 来显示用户可以看到和使用的一系列单元格。这需要是我的工作簿另一张工作表中两列的列表。完成了大部分代码,但我得到了一个我无法理解的输出。
在代码中,我希望 NCol 在 msgbox 提示时显示为百分比。
第一个想法是将该变量中的每个单元格设置为Format(NCol,"0.00%") 在For NCol = ... 之后。
第二个想法是在Str & Rng.Cells...Format(Ncol.. 内部,显然没有按预期进行。
非常感谢任何指向正确方向的指针。下图显示了 msgbox 中的结果。 输入
结果
Sub ShowTopCat()
Dim Rng As Range
Dim ACell As Range
Dim Str As String
Dim ARow As Long
Dim NCol As Long
Dim art As Worksheet
Set art = Worksheets("Sheet1")
On Error Resume Next
Set Rng = art.Range("x2:y101")
If Rng Is Nothing Then Exit Sub
On Error Resume Next
For ARow = 1 To Rng.Rows.Count
For NCol = 1 To Rng.Columns.Count
Str = Str & Rng.Cells(ARow, NCol).Value & vbTab
Next
Str = Str & vbCrLf
Next
MsgBox Str, vbInformation, "You top cats"
End Sub
【问题讨论】:
-
为什么不使用
Right()或Split()来获取字符串的数字部分并将其存储在Double中。然后你可以操纵它? -
您的输入和预期输出是什么?
-
@Tom 用图片编辑了问题,如果 msgbox 的范围从中获取值
-
对不起,但对我来说完全不清楚你想得到什么
-
我只是想说,
Format(NCol, "0.00%")可以和我一起工作(如果Ncol是对数字的引用)以将其放入MsgBox。否则,也许您正在寻找NumberFormat来格式化您的实际单元格?