[英]How do I cross-reference between two worksheets and sum/group by occurances on 3rd sheet?
[英]Cross-reference between two worksheets
我有兩個電子表格(OriginalData 和 Template),我試圖弄清楚如何創建一個 vba 代碼,只有當模板工作表中的列中的特定單元格為空白時,該代碼才會將數據從 OriginalData 工作表中提取到模板工作表中. 數據將填充到模板工作表上的另一列中,而不是替換原來的空白單元格。 我還需要遍歷數據范圍內的每個空白單元格。 我知道我可以使用 VLOOKUP 公式,但我試圖盡可能地自動化這個過程,而不必每次都輸入公式。
到目前為止,這是我能夠提出的,但它不起作用,現在我被卡住了,所以任何幫助將不勝感激。 我對 VBA 編碼還比較陌生,所以請對我放心。
Dim shOrg As Worksheet: Set shOrg = ThisWorkbook.Sheets("OriginalData")
Dim shTemp As Worksheet: Set shTemp = ThisWorkbook.Sheets("Template")
Dim CheckCell as Range
LastRowTemp = shTemp.Cells(Rows.Count, 1).End(xlUp).Row + 1
For Each CheckCell in shTemp.Range("B" & LastRowTemp)
If CheckCell.Value = "" Then
Range("C" & CheckCell).Value = Application.VLookup(CheckCell,shOrg.Range("A2:E"),5,FALSE)
End If
Next CheckCell
End Sub
針對您上面的評論,以下代碼將實現您想要的 - 即定義要評估的行數。
Option Explicit
Sub AutoVlookup()
Dim shOrg As Worksheet, shTemp As Worksheet
Dim OrgRng As String, TempRng As Range, CheckCell As Range
Set shOrg = Sheets("OriginalData")
Set shTemp = Sheets("Template")
'Define the lookup ranges i.e. the last rows
shOrg.Range("A2:E" & shOrg.Cells(Rows.Count, 1).End(xlUp).Row).Name = "OrgRng"
Set TempRng = shTemp.Range("B2:B" & shTemp.Cells(Rows.Count, 1).End(xlUp).Row)
For Each CheckCell In TempRng
If CheckCell.Value = "" Then
CheckCell.Offset(, 1).FormulaR1C1 = "=VLOOKUP(RC1,OrgRng,5,FALSE)"
CheckCell.Offset(, 1).Value = CheckCell.Offset(, 1).Value
End If
Next CheckCell
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.