gpt4 book ai didi

VBA循环遍历用户窗体中的文本框控件

转载 作者:行者123 更新时间:2023-12-04 21:52:14 30 4
gpt4 key购买 nike

我浏览了许多关于循环用户窗体控件的帖子,但似乎无法调整我找到的代码以满足我的需要并且需要一些帮助。

我试图弄清楚的场景:

  • 我在一个用户窗体上有 44 个文本框,它们的名称都以“ch”开头,例如“chTextBox1”
  • 当用户窗体激活时,我需要遍历所有以“ch”开头的文本框,并将这些文本框的背景颜色更改为基于单元格内部颜色的颜色

  • 下面是我一直在搞乱的代码,我要么陷入无限循环,要么得到

    Error 424


    Private Sub UserForm_Activate()
    Dim wb As Workbook
    Dim wsRR As Worksheet
    Dim bColor As Range
    Dim c As Control
    Dim y As String

    Set wb = Application.ThisWorkbook
    Set wsRR = wb.Sheets("RiskRating")
    Set bColor = wsRR.Range("C3")

    For Each c In JHKey.Controls
    If TypeName(c) = "TextBox" Then
    y = Left(c, 2)
    End If
    If y = "ch" Then
    c.BackColor = bColor.Interior.Color
    End If
    Next c
    End Sub

    最佳答案

    尝试将“ch”的 If 语句测试放在“TextBox”的 If 语句测试中。此外,您应该在检查控件名称时为其指定 Name 属性,否则它默认为其 Value 属性。另外,顺便说一句,我建议用关键字 Me 替换 JHKey,它指的是用户窗体本身,而不管其名称如何。

    Private Sub UserForm_Activate()
    Dim wb As Workbook
    Dim wsRR As Worksheet
    Dim bColor As Range
    Dim c As Control
    Dim y As String

    Set wb = Application.ThisWorkbook
    Set wsRR = wb.Sheets("RiskRating")
    Set bColor = wsRR.Range("C3")

    For Each c In Me.Controls
    If TypeName(c) = "TextBox" Then
    y = Left(c.Name, 2)
    If y = "ch" Then
    c.BackColor = bColor.Interior.Color
    End If
    End If
    Next c
    End Sub

    关于VBA循环遍历用户窗体中的文本框控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51750281/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com