[英]Validating Cell Input Based on Another Cell
當我在單元格中輸入某些文本時,例如在單元格B2- test
,我希望在單元格A6
中輸入以此字符串開頭並以_VAR1
結尾(例如test_VAR1
。
我找到了一個簡單的公式公式- =IF(A2="test","test_VAR1")
但我想將其作為VBA代碼。
那么有什么想法可以做到嗎?
這是我能想到的最簡單的例子。 LCase(Range("B2"))
還將考慮“ Test”和“ 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
我知道您在您的問題中說過您想要宏,但是我不會發布自己的宏(因為我覺得@Vityata的答案應該足夠了)
但是,我從您的帖子中得到的印象是,您可以調整/改進公式,而完全避免使用宏。 通常出於兼容性原因,最好避免使用宏(許多用戶默認情況下禁用宏)
如果您只是想在輸入中添加關鍵字“ _VAR1” ,請改用以下公式
=LTRIM(B2) & "_VAR1"
如果輸入可以是任何內容,則包含單詞“ test”
=IF(ISNUMBER(SEARCH("test", TRIM(LOWER(B2)))), LTRIM(B2) & "_VAR1", "Incorrect Input")
文字僅包含“測試”一詞,不含其他內容
=IF(TRIM(LOWER(B2))="test", LTRIM(B2) & "_VAR1", "Incorrect input"
您可以使用其他一些變體/技巧,但是這些是您可以用作“構建模塊”的一些最基本的示例
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.