消息框显示excel vba中多列的值

时间:2013-01-21 06:54:51

标签: excel-vba vba excel

有三列。一个有一些表的名称,第二列有自由空间,第三列有百分比。

需要帮助的是:

  1. Msgbox应在其找到的单元格中显示PERCENTAGE USED列的值超过90.
  2. 此外,它还应显示相应表格的名称以及在第一步中显示该值的表格的可用空间。
  3. msgbox输出应该是: “ABCD表使用率为96.67%,剩余空间为:7431MB”

    示例代码,仅显示表名和使用的百分比:

    Dim rngValues As Range
    Dim strTableName As String
    Dim cell As Range
    
     ' Adjust ranges to suit
     Set rngValues = [JI3:JI90]
    For Each cell In rngValues
           If cell.Value > 94.45 Then
           cell.Select
    
           MsgBox Range(cell.Address).Offset(0, -268).Value _
           & " table has current size: " & cell.Value
           cell.Interior.Color = RGB(255, 0, 0)
    
           End If
    

    此代码的示例输出:ABCD表具有当前大小:97.87%

1 个答案:

答案 0 :(得分:2)

解决此问题的一种方法是使用第二个Range(cell.Address).Offset().Value语句将附加信息附加到消息框显示的文本中。确切的代码将取决于显示剩余可用空间的列的“JI”列的列数。

假设它是包含%空间的列之前的列,您可以执行以下操作:

  MsgBox Range(cell.Address).Offset(0, -268).Value _
   & " table has current size: " & cell.Value _
  & " and the space left is: " & Range(cell.Address).Offset(0, -1).Value

如果它不是包含%空格的列之前的列,则只需要正确调整Range(cell.Address).Offset(0,-1).Value中的列偏移量。例如,如果包含可用空间的列出现在列JI之后的9列,则将偏移更改为Offset(0,9)

Offset的括号之间的第一个参数是行数,第二个参数是列数。负偏移指定出现在所选单元格之前的行或列,后置指定出现在所选单元格之后的行或列。 '0'指定当前行或列。