将文本输出应用于完整列

时间:2015-08-04 16:26:36

标签: vba excel-vba excel

我对使用VBA非常陌生,我有一个问题,我觉得这不是一件很难实现的事情。

Columns("A:C").Select
If ActiveCell.FormulaR1C1 = "194511" Then
Range("B1:B1000").Select
ActiveCell.FormulaR1C1 = "Base Reclamation"
Range("C1:C1000").Select
ActiveCell.FormulaR1C1 = "BaseRec Recont ED/LD/ME"
End If

在文中,我相信我有它在我在A列的任何地方输入值的地方,它应该输出显示的两个文本选项,但事实并非如此。它只显示第一行中的文本,但是如果我将“B1:B1000”更改为“B2”,它将在所需的框中输出数据。

如果有人能帮助我,我将不胜感激!

1 个答案:

答案 0 :(得分:0)

这需要在Sheet module中找到您希望它处理的工作表:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count = 1 And Not Intersect(Target, Range("A1:A1000")) Is Nothing Then
        If Target.Text = "194511" Then
            Application.EnableEvents = False
            Target.Offset(0, 1).Resize(1, 2).Value = Array("Base Reclamation", _
                "BaseRec Recont ED/LD/ME")
            Application.EnableEvents = True
        End If
    End If
End Sub

或者,在正常的代码模块中:

[B1:C1000] = [IF($A1=194511,CHOOSE(COLUMN()-1,{""Base Reclamation"",""BaseRec Recont ED/LD/ME""}),"""")]