【问题标题】:VBA change value ending to combobox valueVBA更改值以组合框值结尾
【发布时间】:2021-05-29 22:09:45
【问题描述】:

对于值以“UZL”开头的单元格,我正在尝试将单元格值的最后 3 个符号替换为“LanguageBox”组合框中的符号。并以“.ENG”结尾。所有这些都发生在 E 列(“E2:E”&LastRow)中。

有人可以分享一下代码吗?

工作簿示例: https://easyupload.io/te2xll

【问题讨论】:

  • 很难把握你打算做什么
  • 我在 E 列范围(“E2:E”&LastRow)中有很多行,其中一些以“UZL”开头。并以“.ENG”结尾,例如“UZL.05.005.0.ENG”,我有一个带有 249 个选项的用户表单,可以将“ENG”替换为“RUS”。因此,我需要能够将所有此类事件更改为名为“LanguageBox”的组合框中的值。你懂的?有点像如果离开“UZL”。并将右“.ENG”替换为来自 LanguageBox 的值。

标签: vba replace combobox


【解决方案1】:

试试,

Private Sub CommandButton1_Click()
    Dim vDB As Variant
    Dim rngDB As Range
    Dim s As String, sReplace As String
    Dim i As Long
    Dim Ws As Worksheet
    
    Set Ws = Sheets("BOM")
    
    With Ws
        Set rngDB = .Range("e2", .Range("e" & Rows.Count).End(xlUp))
    End With
    vDB = rngDB
    For i = 1 To UBound(vDB, 1)
        s = vDB(i, 1)
        If s Like "UZL.*" And s Like "*.ENG" Then
            sReplace = Me.LanguageBox.Value '"RUS"
            s = Replace(s, "ENG", sReplace)
            vDB(i, 1) = s
        End If
    Next i
    rngDB = vDB
End Sub

假设您在用户表单中插入了一个命令按钮,请在单击用户表单代码中的命令按钮时插入它。它可以以不同的方式实现。

  1. 用户表单图片

  1. 用户表单代码图片

【讨论】:

  • 谢谢!但这并没有做任何事情,只是返回一个“需要对象”错误。我附上了工作簿的链接,您可以自己查看
  • 什么意思?
  • 运行代码前可能需要添加.showalldata
  • @Mathew,未考虑过滤条件。这是一个新问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-09
  • 1970-01-01
  • 1970-01-01
  • 2020-12-26
  • 2021-08-17
  • 1970-01-01
相关资源
最近更新 更多