Я пишу макрос vba, чтобы позволить мне ссылаться на данные на листе и суммировать некоторые данные, а не использовать тонну формул для этого.Ссылка на рабочие листы для рисования данных
У меня возникли трудности со ссылками на листы и вернулись к активационным листам. Я не уверен, что делаю неправильно. Например:
Sheets("Rainfall").Activate
Set x = Range(Range("C2"), Range("C2").End(xlDown))
, а не
Set x = Sheets("Rainfall").Range(Range("C2"), Range("C2").End(xlDown))
При попытке ссылки на код, такой как
Cells(2 + j, 3) = Application.WorksheetFunction.VLookup(Cells(2 + j, 2), Worksheets("Raw Data").Range(Range("C4"), Range("H4").End(xlDown)), 6, False)
я получаю ошибку 1004. Ниже приведен мой код, и если у кого-то есть предложения по упрощению кода, который также будет отличным.
Sub selectall()
Dim x, y As Range
Dim nv, rd As Long
Set Wkb = Workbooks("DWH Calculations V1.xlsm")
Sheets("Rainfall").Activate
Set x = Range(Range("C2"), Range("C2").End(xlDown))
nv = x.Rows.Count
'MsgBox (nv)
Sheets("Raw Data").Activate
Set y = Range(Range("E4"), Range("E4").End(xlDown))
rd = y.Rows.Count
'MsgBox (rd)
MinD = Round(Application.WorksheetFunction.Min(y), 0)
MaxD = Round(Application.WorksheetFunction.Max(y), 0)
Ndays = MaxD - MinD
'MsgBox (Ndays)
Sheets("Rainfall").Activate
Cells(2, 2) = MinD
For j = 1 To Ndays - 1
Cells(2 + j, 2) = Cells(1 + j, 2) + 1
Cells(2 + j, 3) = Application.WorksheetFunction.VLookup(Cells(2 + j, 2), Worksheets("Raw Data").Range(Range("C4"), Range("H4").End(xlDown)), 6, False)
Next j
End Sub
Спасибо всем за вашу помощь
Спасибо Рори, что имеет смысл сейчас. – Tree