VBA:目标.值,更改单元格



我想点击E15,并把E16的值。我该怎么做呢?我的代码是:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
If Not Intersect(Target, Range("C6")) Is Nothing Then
Call CLICK_BTN_INFOS_CONTRAT
End If
Dim TabRes() As String
If Target.Value = [E15].Value Then
ReDim TabRes(0 To UBound(Split([Target], ",")))
For i = LBound(TabRes) To UBound(TabRes)
TabRes(i) = Split(Split([Target], ",")(i), "-")(1)
MsgBox TabRes(0)
GET_GROUPE_GESTION_CIBLE TabRes(0)
Next i

End If

End Sub

您正在使用错误的事件处理程序。根据您的要求,请参见下面的代码:

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, ActiveSheet.Range("E15")) Is Nothing Then
Target.Value = Target.Offset(0,1).Value
'or
'Target.Value = ActiveSheet.Range("E16").Value
'or
'ActiveSheet.Range("E15").Value = ActiveSheet.Range("E16").Value
End If

End Sub

编辑

看到你的评论后,我正在编辑。如果您从下拉菜单中选择,那么您的事件处理程序是正确的,即Worksheet_Change()。以下应能满足你方要求。

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, ActiveSheet.Range("E15")) Is Nothing Then
Dim inputString As String
Dim stringArray As Variant
Dim argString as String

'store E15 to a string variable
inputString = Target.Value
'create array from string
stringArray = Split(inputString, " ")
'store E16 to variable to pass to function call
argString = Target.Offset(1, 0).Value
'call function
GET_GROUPE_GESTION_CIBLE(argString)
End If

End Sub

相关内容

最新更新