Я пытаюсь скопировать диапазон, который различается по размеру, определяемому значениями моей первой и последней ячеек в массиве.
Я выяснил Cell.Address, который ограничивает диапазон,однако, когда я пытаюсь ввести их в свой Range (Cell1, Cell2), я получаю ошибки.
Мой Cell1 задается как:
Cells.Find("ID").Offset(1,0).Address
А мой Cell2 определяется как:
Cells.Find("Description of initiative").offset(1,0).end(xldown).Offset(0,cells.Find("ID").Column-cells.Find("Description of initiative").Column).address
Я пытался просто вырезать и вставить их в Range (Cell1, Cell2), но я получаю ошибки. Я попытался создать и определить переменные, но безуспешно. Если бы кто-то мог помочь мне здесь, я был бы очень признателен.
Спасибо
Я благодарен за ответы - вот полный код:
Sub Refresh()
Dim wB As Workbook
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each Worksheet In Worksheets
Select Case Worksheet.Name
Case "Inputs", "Instructions"
Case "Project Dashboard"
Range("B29:B1000").ClearContents
Case Else
Worksheet.Delete
End Select
Next Worksheet
ufProgress.LabelProgress.Width = 0
ufProgress.Show
Dim i As Integer
For i = 10 To 17
pctdone = (i - 9) / 8
With ufProgress
.LabelCaption.Caption = "Processing Dashboard " & i - 9 & " of 8"
.LabelProgress.Width = pctdone * (.FrameProgress.Width)
End With
DoEvents
Set wB = Workbooks.Open(Range("G" & i), False, True)
wB.Sheets(Workbooks(ThisWorkbook.Name).Worksheets("Inputs").Range("F" & i).Value).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
wB.Close False
With Worksheets(Workbooks(ThisWorkbook.Name).Worksheets("Inputs").Range("F" & i).Value)
.Tab.ColorIndex = 15
.Name = Range("C" & i)
.Cells.UnMerge
.Range("B31:B" & .Cells(.Rows.Count, "C").End(xlUp).Row).Copy
End With
Worksheets("Project Dashboard").Range("B10000").End(xlUp).Offset(1, 0).PasteSpecial xlValues
If i = 17 Then Unload ufProgress
Next
Application.DisplayAlerts = True
End Sub
Вот строка, которую я пытаюсь сделать динамической: (и замените ее длинными формулами Cell вверху)
.Range("B31:B" & .Cells(.Rows.Count, "C").End(xlUp).Row).Copy
Я проверил результаты обеих формул Cell.Address, и они возвращают правильные результаты. (Я считаю, что это были $ B $ 31 и $ B $ 48 соответственно). По сути, эти ячейки не являются статичными, но они всегда будут лежать ниже ячеек, содержащих «ID» и «Описание инициативы». Я пытаюсь сделать первую ячейку ниже идентификатора и последнюю ячейку описания инициативы (смещенной обратно на столбец идентификатора) в качестве диапазона копируемых ячеек.
Имеет ли это больше смысла?
Я ценю помощь!
Мой основной вопрос заключается в следующем:
Как выписать диапазон, в котором значения ячеек являются пределами диапазона? Например (смиритесь со мной), скажем, ячейка X100 имеет значение «A1», а ячейка Y200 имеет значение «B5». Есть ли способ написать Range ( Cell X100 Value , Cell Y200 Value )?
В этой ситуации я хотел бы закончить Range ("A1: B5" ).
Мне нужно, чтобы Range смотрел на значение в разных ячейках, чтобы определить его начальную и конечную точки. Это имеет больше смысла?
Спасибо!