Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 根据另一个单元格中的输入分配单元格中的值_Vba_Excel - Fatal编程技术网

Vba 根据另一个单元格中的输入分配单元格中的值

Vba 根据另一个单元格中的输入分配单元格中的值,vba,excel,Vba,Excel,这是我的密码: Private Sub Worksheet_Change(ByVal Target As Range) If Range("A1").Value = "ORACLE" Then Range("B1").Value = "DATABASE" ElseIf Range("A1").Value = "UNIX" Then Range("B1").Value = "SERVER" End If End Sub 如何对整个专栏执行此操作?尝试以下操作: Private

这是我的密码:

Private Sub Worksheet_Change(ByVal Target As Range)
  If Range("A1").Value = "ORACLE" Then
  Range("B1").Value = "DATABASE"
  ElseIf Range("A1").Value = "UNIX" Then
  Range("B1").Value = "SERVER"
  End If
End Sub
如何对整个专栏执行此操作?

尝试以下操作:

Private Sub Worksheet_Change()
Dim rng As Range

Range("A1").Select
For Each rng In Range("A:A")
  If rng.Value = "ORACLE" Then
    ActiveCell.Offset(0, 1).Value = "DATABASE"
    ActiveCell.Offset(1, 0).Select
  ElseIf rng.Value = "UNIX" Then
    ActiveCell.Offset(0, 1).Value = "SERVER"
    ActiveCell.Offset(1, 0).Select
  End If
Next rng

End Sub
试试这个:

Private Sub Worksheet_Change()
Dim rng As Range

Range("A1").Select
For Each rng In Range("A:A")
  If rng.Value = "ORACLE" Then
    ActiveCell.Offset(0, 1).Value = "DATABASE"
    ActiveCell.Offset(1, 0).Select
  ElseIf rng.Value = "UNIX" Then
    ActiveCell.Offset(0, 1).Value = "SERVER"
    ActiveCell.Offset(1, 0).Select
  End If
Next rng

End Sub

这不依赖于activecell,因为它基于A列中的事件,所以只有在A列更改时,才会更改B列中的单元格

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("A:A")) Then

    If Target.value = "ORACLE" Then
        Range("B" & Target.Row).value = "DATABASE"
    ElseIf Target.value = "UNIX" Then
        Range("B" & Target.Row).value = "SERVER"
    End If
End If
End Sub

这不依赖于activecell,因为它基于A列中的事件,所以只有在A列更改时,才会更改B列中的单元格

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("A:A")) Then

    If Target.value = "ORACLE" Then
        Range("B" & Target.Row).value = "DATABASE"
    ElseIf Target.value = "UNIX" Then
        Range("B" & Target.Row).value = "SERVER"
    End If
End If
End Sub