Учитывая строку и столбец (как долго), как вы можете определить нотацию электронной таблицы с помощью VBA в Excel (2007):
e.g.:
(R, C) = (1, 1) -> "A1"
(R, C) = (2, 1) -> "A2"
(R, C) = (2, 2) -> "B2"
Таким образом, если у вас есть функция:
Function CellRef(R As Long, C As Long) As String
который предоставил эту функциональность, вы могли бы сделать что-то вроде:
Worksheet.Range(CellRef(R1, C1) + ":" + CellRef(R2, C2)).Copy
Небольшая предыстория, если это неправильный подход: цель этого состоит в том, что у меня есть мастер-лист, который описывает другие рабочие листы в таблице:
WorksheetName, Range etc....
Этот мастер-лист управляет преобразованиями на листе, но значение диапазона, очевидно, указано в нотации Excel для удобного последующего использования при ссылке на диапазон. Однако подпрограмма для управления этой таблицей, сообщения об исключениях и обеспечения согласованности действительно получает данные из других листов в строке и столбце, поэтому, например, она получает строку и столбец, где она знает, что что-то начинается и заканчивается.
Вот функция, которую я получил:
Private Function CellRef(R As Long, C As Long) As String
CellRef = vbNullString
On Error GoTo HandleError:
CellRef = Replace(Mid(Application.ConvertFormula("=R" & R & "C" & C, XlReferenceStyle.xlR1C1, XlReferenceStyle.xlA1), 2), "$", "")
Exit Function
HandleError:
End Function