【发布时间】:2017-01-05 16:20:10
【问题描述】:
我正在努力寻找我需要的答案,希望有人能提供帮助。我觉得我编写的代码需要以不同的方式来实现我想要实现的目标。
我已经生成了一些代码,这些代码在一个单元格上生成一个 IF 语句,并在旁边的另一个单元格中显示相应的描述,我还添加了代码以确保它在此值更改时自动更新。这行得通。
我现在需要扩展代码,以便循环单元格并重复相同的功能。检查 IF 语句并在其旁边的相应单元格中显示相应的描述。
工作表 VBA:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Me.Range("A2:A10")) Is Nothing Then Exit Sub
Application.EnableEvents = False
On Error GoTo Finalise
Call Material_String
Finalize:
Application.EnableEvents = True
End Sub
模块:
Sub Material_String()
Dim MaterialOption As String
Dim MaterialDetail As String
MaterialOption = Range("A2").Value
If MaterialOption = "a" Then MaterialDetail = "a is bloody good"
If MaterialOption = "b" Then MaterialDetail = "b is excellent"
If MaterialOption = "c" Then MaterialDetail = "c is most good"
If MaterialOption = "d" Then MaterialDetail = "d is simply the best"
If MaterialOption = "e" Then MaterialDetail = "e's are just amazing"
Range("C2").Value = MaterialDetail
End Sub
任何指针将不胜感激。
【问题讨论】:
-
查看how to loop through a range。此外,Select Case 也可能会有所帮助,而不是
If声明。 -
如果你的代码是通过改变一个单元格来激活的,如果它的大部分单元格都没有改变,为什么你需要它循环整个范围呢?我原以为你是正确的。
标签: excel loops if-statement row vba