当我在单元格中输入一些文本时,例如在单元格B2 - test
中,我想在单元格A6
中输入以此字符串开头并以_VAR1
结尾 - 例如test_VAR1
。
我找到了一个简单的解决方案 - =IF(A2="test","test_VAR1")
,但我希望将其作为VBA代码。
所以想知道如何做到这一点?
答案 0 :(得分:0)
这是我能想到的最简单的例子。
LCase(Range("B2"))
也需要"测试"和#34; TeSt"考虑到:
Option Explicit
Public Sub TestMe()
With ActiveSheet
If LCase(.Range("B2")) = "test" Then
.Range("A6") = .Range("B2") & "_VAR1"
End If
End With
End Sub
如果您想检查工作表的每个事件,请将代码放在相应的工作表中(下图中的Sheet1,Sheet2和Sheet3):
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Intersect(Target, Me.Range("B2")) Is Nothing Then Exit Sub
Application.EnableEvents = False
If LCase(Target) = "test" Then
Me.Range("A6") = Target & "_VAR1"
End If
Application.EnableEvents = True
End Sub
答案 1 :(得分:0)
我知道你在你的问题中说过你想要宏,但我不会发布我自己的(因为我觉得@Vityata的回答应该足够了)
但是,我从你的帖子中得到了印象,你可以调整/改进你的公式而完全避免使用宏。出于兼容性原因,通常最好避免使用宏(很多)用户默认禁用宏)
如果您只想将关键字“_VAR1”添加到输入,请使用以下公式代替
=LTRIM(B2) & "_VAR1"
如果输入可以是任何内容,则包含单词“test”
=IF(ISNUMBER(SEARCH("test", TRIM(LOWER(B2)))), LTRIM(B2) & "_VAR1", "Incorrect Input")
文字仅包含单词“test”,而不包含任何其他内容
=IF(TRIM(LOWER(B2))="test", LTRIM(B2) & "_VAR1", "Incorrect input"
您可以使用其他一些变体/技巧,但这些是您可以用作“构建块”的一些最基本的示例