Страница: 1 |
Страница: 1 |
Вопрос: Переменная в относительных ссылках
Добавлено: 20.11.07 07:48
Автор вопроса: angrynews | Web-сайт:
Экселевская формула выглядит так
ActiveCell.FormulaR1C1 = "=MIN(r[-3]c:r[-1]c))"
т.е. обрабатывается диапазон выше текущей ячейки. Врочем не важно выше, ниже, справа или слева. Важно следующее, как запихнуть сюда переменные, чтобы в код программы запихнуть это? Надо переменную, а не твердое значение.
Помнится вроде что-то такое делал с использованием Offset, но не помню точно...давно было.
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
angrynews
Вопросов: 33
Ответов: 119
Web-сайт:
Профиль | | #1
Добавлено: 20.11.07 08:16
Ой, забыл, подскажите где можно посмотреть, как с ClipBoard работать. Конкретно, копирую слово, и оно должно отобразиться в, скажем, переменной в любой процедуре.
Спасибо
Номер ответа: 2
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #2
Добавлено: 20.11.07 15:20
Да, именно Offset:
With ActiveCell
.Formula = "=MIN(" & Range(.Offset(-3), .Offset(-1)).Address(False, False) & ""
End With
End Sub
Можно и понагляднее:
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
Автор ответа:
Pavel
Вопросов: 0
Ответов: 82
Профиль | | #3
Добавлено: 20.11.07 16:57
'Вариант 1
'для работы примера должна быть подключена библиотека 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
Автор ответа:
angrynews
Вопросов: 33
Ответов: 119
Web-сайт:
Профиль | | #4
Добавлено: 20.11.07 16:59
а зачем конкатенацию делать?
Номер ответа: 5
Автор ответа:
angrynews
Вопросов: 33
Ответов: 119
Web-сайт:
Профиль | | #5
Добавлено: 20.11.07 17:00
Господа, всем Риспект
Номер ответа: 6
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #6
Добавлено: 20.11.07 18:45
А как иначе впихнуть в формулу строку по частям?
Номер ответа: 7
Автор ответа:
angrynews
Вопросов: 33
Ответов: 119
Web-сайт:
Профиль | | #7
Добавлено: 20.11.07 19:45
уже въехал ))))
Номер ответа: 8
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #8
Добавлено: 24.11.07 14:54
Странно чот VBD и тут не отметился
Номер ответа: 9
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #9
Добавлено: 25.11.07 23:35
А кто это такой? ))