繁体   English   中英

VBA 将 CELL 中的最后 3 个符号替换为 COMBOBOX 值

[英]VBA replace last 3 symbols in a CELL to COMBOBOX value

我有一个代码可以找到以“UZL”开头的单元格。 并且是 16 个符号长:

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 Len(s) = 16 Then
        sReplace = Me.LanguageBox.Value
        s = Replace(s, "ENG", sReplace)
        vDB(i, 1) = s
    End If
Next i
rngDB = vDB

其中有一行:

s = Replace(s, "ENG", sReplace)

该更改仅是其中包含“.ENG”的单元格(始终位于末尾),但我需要将其定义为不依赖于此。 而不是 .ENG 它可能应该说“将最后三个符号更改为 combobox 所说的内容”。 有一个 combobox 有 249 个不同的选项,最后三个符号可能会改变,我需要能够一次又一次地改变它们,比如从 ENG 到 AUS 到 RUS 等等。

有人可以帮我修改此代码以一遍又一遍地进行更改吗?

工作簿: https://easyupload.io/37tztt

正确的行而不是

s = Replace(s, "ENG", sReplace)

应该

s = 替换(s, Right(s, 3), sReplace)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM