С учетом строки и столбца (как долго), как вы можете определить нотацию электронной таблицы, используя VBA в Excel (2007):
например:.
(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