我正在尝试通过检查特定单元格的值并使用值设置多个列来自动化Excel工作表。
例如,如果A1
单元格为“2”,那么我希望B2:D54
中的所有单元格都是等于0的值。我有一个代码,但看起来它是错误的。
Private Sub Worksheet_Change(ByVal Target As Range)
//this selects the cell C3 and checks if the value if is 0619
If Range("C3")="0619"
Dim example As Range
Set example =Range("E3:AE53")
example.Value = 0
End if
End Sub
修改 - 添加了Then
,但仍无效。
Private Sub Worksheet_Change(ByVal Target As Range)
//this selects the cell C3 and checks if the value if is 0619
If Range("C3")="0619" Then
Dim example As Range
Set example =Range("E3:AE53")
example.Value = 0
End if
End Sub
答案 0 :(得分:1)
您在Then
If
VBA中的评论是以'
开始的,而不是//
,因此无法正确解析。
If Range("C3")="0619"
请记住,Excel会从数字中删除前导零。如果要将值格式化为文本,则只有前导零。
编辑:If Range("C3").Value
优于If Range("C3")
Private Sub Worksheet_Change(ByVal Target As Range)
'this selects the cell C3 and checks if the value if is 0619
If Range("C3").Value = "0619" Then
Dim example As Range
Set example = Range("E3:AE53")
example.Value = 0
End If
'
Range("A1").Select
End Sub
答案 1 :(得分:0)
If Range("C3").Text ="0619" Then
代码:
Private Sub Worksheet_Change(ByVal Target As Range)
if not intersect(target, range("C3")) is nothing then
on error goto safe_exit
application.enableevents = false
select case range("C3").text
case "0619"
Range("E3:AE53") = 0
case else
'do nothing
end select
End if
safe_exit:
application.enableevents = true
End Sub
我已将标准检查更改为Select Case语句,以便更容易适应其他条件。