Страница: 1 |
Вопрос: Переменная в относительных ссылках | Добавлено: 20.11.07 07:48 |
Автор вопроса: ![]() |
Экселевская формула выглядит так
ActiveCell.FormulaR1C1 = "=MIN(r[-3]c:r[-1]c))" т.е. обрабатывается диапазон выше текущей ячейки. Врочем не важно выше, ниже, справа или слева. Важно следующее, как запихнуть сюда переменные, чтобы в код программы запихнуть это? Надо переменную, а не твердое значение. Помнится вроде что-то такое делал с использованием Offset, но не помню точно...давно было. |
Ответы | Всего ответов: 9 |
Номер ответа: 1 Автор ответа: ![]() ![]() Вопросов: 33 Ответов: 119 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 20.11.07 08:16 |
Ой, забыл, подскажите где можно посмотреть, как с ClipBoard работать. Конкретно, копирую слово, и оно должно отобразиться в, скажем, переменной в любой процедуре.
Спасибо |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() Вопросов: 18 Ответов: 186 |
Профиль | Цитата | #2 | Добавлено: 20.11.07 15:20 |
Да, именно Offset:
Sub WriteFormula()
With ActiveCell .Formula = "=MIN(" & Range(.Offset(-3), .Offset(-1)).Address(False, False) & " ![]() End With End Sub Можно и понагляднее: Sub WriteFormula()
Dim firstCellAddress As String Dim lastCellAddress As String With ActiveCell firstCellAddress = .Offset(-3).Address(False, False) lastCellAddress = .Offset(-1).Address(False, False) .Formula = "=MIN(" & firstCellAddress & ":" & lastCellAddress & " ![]() End With End Sub копирую слово, и оно должно отобразиться в, скажем, переменной в любой процедуре.
Я вот откопал метод String = object.GetFromClipboard(). Только не могу понять, чё за object нужен? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 82 |
Профиль | Цитата | #3 | Добавлено: 20.11.07 16:57 |
'Вариант 1
'копирует и вставляет информацию из ClipBoard (буфера обмена).
'для работы примера должна быть подключена библиотека Microsoft Forms 2.0 Object Library в Tools - References... (или нужна любая пользовательская форма в проекте) Dim MyData As DataObject, MyTest$ Private Sub Test() Set MyData = New DataObject 'копируем в буфер обмена MyData.SetText "Test of copying and pasting to/from Clipboard!" MyData.PutInClipboard 'вставляем из буфер обмена MyData.GetFromClipboard MyTest = MyData.GetText(1) MsgBox MyTest End Sub 'Вариант 2 'для макроса работы нужна хотя бы одна форма
Dim MyData As DataObject Dim BufferInfo As String Set MyData = New DataObject MyData.GetFromClipboard On Error Resume Next BufferInfo = MyData.GetText If Err.Number <> 0 Then MsgBox "В буфере обмена информации нет!", vbOKOnly + vbExclamation, "Буфер обмена" Exit Sub End If MsgBox BufferInfo, vbOKOnly + vbInformation, "Буфер обмена" |
Номер ответа: 4 Автор ответа: ![]() ![]() Вопросов: 33 Ответов: 119 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 20.11.07 16:59 |
а зачем конкатенацию делать? |
Номер ответа: 5 Автор ответа: ![]() ![]() Вопросов: 33 Ответов: 119 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 20.11.07 17:00 |
Господа, всем Риспект |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() Вопросов: 18 Ответов: 186 |
Профиль | Цитата | #6 | Добавлено: 20.11.07 18:45 |
а зачем конкатенацию делать?
А как иначе впихнуть в формулу строку по частям? |
Номер ответа: 7 Автор ответа: ![]() ![]() Вопросов: 33 Ответов: 119 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 20.11.07 19:45 |
уже въехал )))) |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #8 | Добавлено: 24.11.07 14:54 |
Странно чот VBD и тут не отметился |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() Вопросов: 18 Ответов: 186 |
Профиль | Цитата | #9 | Добавлено: 25.11.07 23:35 |
Странно чот VBD и тут не отметился
А кто это такой? ![]() |
Страница: 1 |
|