我嘗試過在A列中檢查單詞「Apple」的循環(我對VBA很新)。列A包含水果名稱。當找到「Apple」時,則代碼將範圍「H2:S2」複製到列G以及列A中的相應行值。VBA使用通配符查找行中的值
但是,當搜索條件部分更改爲通配符時,代碼不會運行我的目標是包含存在單詞Applecake的行)。
lookupVal = "Apple" 'Works
lookupVal = "*Apple*" 'Nothing happens
我應該如何調整下面的代碼,因此使用通配符運行或者可能還有比這碼狀態更好的解決方案來實現的結果?
全碼:
Sub CopypasteValues()
Dim i, j, lastrowA As Long
Dim lookupVal As String
'finds the last row in Column A
lastrowA = Sheets("Dataset").Cells(Rows.Count, "A").End(xlUp).Row
'loop over values in Sheet "Dataset"
For i = 1 To lastrowA
lookupVal = "Apple" 'Define search critera
For j = 1 To lastrowA
currVal = Sheets("Dataset").Cells(j, "A")
If lookupVal = currVal Then
ValueCopy = Range("G2:S2").Copy 'Range to copy
Sheets("Dataset").Cells(j, "G") = Range("G" & j).PasteSpecial
End If
Next j
Next i
End Sub
邊注意:請確保您爲每個**變量指定一個類型。 'Dim i,j,lastrowA As Long'你只能將最後一個聲明爲'Long',前2個將保持'Variant':使用Dim i As Long,j As Long,lastrowA As Long'來聲明所有3個輸入'Long'。 –
感謝您指出! – Wiz