使用vba获取特定文本的单元格列号
嗨,我需要获得一个单元格的文本作为行动。
我目前的代码如下。
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim rngDV As Range Dim oldVal As String Dim newVal As String Dim actionColName As String If Target.Count > 1 Then GoTo exitHandler On Error Resume Next Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation) On Error GoTo exitHandler If rngDV Is Nothing Then GoTo exitHandler If Intersect(Target, rngDV) Is Nothing Then 'do nothing Else Application.EnableEvents = False newVal = Target.Value Application.Undo oldVal = Target.Value Target.Value = newVal If Target.Column = 3 Then If oldVal = "" Then 'do nothing Else If newVal = "" Then 'do nothing Else Target.Value = oldVal _ & "+ " & newVal End If End If End If End If exitHandler: Application.EnableEvents = True End Sub
在上面的代码中有一个条件如下Target.Column = 3然后
而不是用3硬编码值,我想将这个逻辑应用于包含ACTION值的完整列,在其列中的一个单元格中。
使用Find
来确定包含Action的(第一个)列
Sub GetAction() Dim rng1 As Range Set rng1 = ActiveSheet.UsedRange.Find("Action", , xlValues, xlWhole) If Not rng1 Is Nothing Then MsgBox "Found in column " & rng1.Column Else MsgBox "Not found", vbCritical End If End Sub