0
所以,我想要做的就是找到其中有「Severity」的列名,然後在該列中跳過1個單元格,並替換文本「高」爲1,其他爲2。編譯錯誤指向.Range
的行,其中我設置Rng =偏移量變量。Complie錯誤:預期的函數或變量(使用.Range())
這裏是我的VBA:
Sub Sev()
Dim ws As Worksheet
Dim aCell As Range, Rng As Range
Dim col As Long, lRow As Long
Dim colName As String
'~~> Change this to the relevant sheet
Set ws = ThisWorkbook.Sheets("Sheet1")
With ws
Set aCell = .Range("A1:N1").Find(What:="Severity", LookIn:=xlValues, LookAt:=xlWhole, _
MatchCase:=False)
'~~> If Found
If Not aCell Is Nothing Then
col = aCell.Column
colName = Split(.Cells(, col).Address, "$")(1)
lRow = .Range(colName & .Rows.Count).End(xlUp).Row
'~~> This is your range
lastCell = Range(col).End(xlDown).Select
Set Rng = .Range(aCell.Offset(1, 0), lastCell).Select
'Debug.Print Rng.Address
cell = aCell.Offset(1, 0)
For Each cell In Rng
If (InStr(aCell.Value, "high")) > 0 Then
aCell.Value = 1
Else
aCell.Value = 2
End If
Next cell
'~~> If not found
Else
MsgBox "Nov Not Found"
End If
End With
End Sub
我不再有編譯錯誤。感謝你的回答。然而,for循環和偏移量沒有完成我想要的。它只會改變第一個單元格,這是嚴重性。它沒有別的。有任何想法嗎? – BeastlyBernardo
我在@BeastlyBernardo中放了第二個版本的代碼。我認爲那是你想要的。嘗試更多地使用調試器工具來隔離你的錯誤,並確保你瞭解設置整數和範圍,或者兩個單元格(i + 1,4)等的組合之間的差異。這就是你掙扎的地方。祝你好運。 – PGCodeRider
謝謝!我發現錯誤是什麼 – BeastlyBernardo