计算用户表单显示中的红色单元格

问题描述 投票:0回答:1

我创建了一个用户窗体,用于显示数据并验证显示的数据是否准确。如果不准确,前色将变成红色。因为有太多数据需要验证,所以我希望在第一页上有一个框,用于汇总所有包含红色字体的用户窗体文本框。在网上搜索后,我能够拼凑出下面的代码。 这不起作用,所以我可能还没有弄清楚这一点。

Private Sub CommandButton6_Click()
Dim totalred As Integer
Dim ctrl As Control
totalred = 0
For Each ctrl In UserForm1.Controls
If TypeOf ctrl Is TextBox Then
ctrl.DisplayFormat.ForeColor.COLOR = vbRed
totalred = totalred + 1
UserForm1.INCORRECTCOUNT.Value = totalred
End If
    
Next ctrl

End Sub

这甚至不会在文本框中显示任何内容。我还设置了一个 msgbox 显示,它只会显示为零。

vba count userform
1个回答
0
投票

我修改了你的代码:

Option Explicit

Private Sub CommandButton6_Click()
   Dim totalred As Integer
   Dim ctrl As Control
   
   totalred = 0
   
   For Each ctrl In UserForm1.Controls
      If TypeOf ctrl Is MSForms.TextBox Then
         If ctrl.ForeColor = vbRed Then
            totalred = totalred + 1
         End If
      End If
   Next ctrl

   UserForm1.INCORRECTCOUNT.Value = totalred
End Sub

请注意,我正在对照

MSForms.TextBox
检查 TypeOf,我更改了检查 ForeColor 的方式,并且将更新总数移至循环之外。

© www.soinside.com 2019 - 2024. All rights reserved.