根据两行中的值删除列

以下代码应删除两行中的值与条件匹配的列。

没有错误,也没有工作。

Private Sub deleteresourcebutton_Click() Dim teamname As String Dim resourcename As String Dim findteamname As Range Dim findresourcename As Range teamname = teamnametextbox.Text resourcename = resourcenametextbox.Text Set findteamname = Sheets("Sheet1").Range("7:7").Find(what:=teamname, MatchCase:=False, lookat:=xlWhole) Set findresourcename = Sheets("Sheet1").Range("8:8").Find(what:=resourcename, MatchCase:=False, lookat:=xlWhole) If findteamname = teamname And findresourcename = resourcename Then findresourcename.Select Selection.EntireColumn.Delete End If End Sub 

我认为问题在于你的IF 。 你可能喜欢这样尝试:

 If Not (findteamname Is Nothing) And Not (findresourcename Is Nothing) Then findresourcename.EntireColumn.Delete End If 

如果还有其他问题,这里有一个完整的版本,添加了一些debugging。 Debug.Print的输出显示在“immediate”窗口中,所以确保在VBE(View> Immediate Window或CTRL + G

 Private Sub deleteresourcebutton_Click() 'A line of code for debugging purposes Debug.Print "deleteresourcebutton_Click is running" Dim teamname As String Dim resourcename As String Dim findteamname As Range Dim findresourcename As Range teamname = teamnametextbox.Text resourcename = resourcenametextbox.Text 'Two lines of code for debugging purposes Debug.Print "Searching for Team: " & teamname Debug.Print "Searching for Resource: " & resourcename Set findteamname = Sheets("Sheet1").Range("7:7").Find(what:=teamname, MatchCase:=False, lookat:=xlWhole) Set findresourcename = Sheets("Sheet1").Range("8:8").Find(what:=resourcename, MatchCase:=False, lookat:=xlWhole) 'Five lines of code for debugging purposes If Not (findteamname Is Nothing) Then Debug.Print "Team found: " & findteamname.Address Else Debug.Print "Team not found" End If If Not (findteamname Is Nothing) And Not (findresourcename Is Nothing) Then findresourcename.EntireColumn.Delete End If 'A line of code for debugging purposes Debug.Print "deleteresourcebutton_Click has finished running" End Sub