Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Переменная в относительных ссылках Добавлено: 20.11.07 07:48  

Автор вопроса:  angrynews | Web-сайт: www.angrynews.ru
Экселевская формула выглядит так

ActiveCell.FormulaR1C1 = "=MIN(r[-3]c:r[-1]c))"

т.е. обрабатывается диапазон выше текущей ячейки. Врочем не важно выше, ниже, справа или слева. Важно следующее, как запихнуть сюда переменные, чтобы в код программы запихнуть это? Надо переменную, а не твердое значение.
Помнится вроде что-то такое делал с использованием Offset, но не помню точно...давно было.

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 angrynews



Вопросов: 33
Ответов: 119
 Web-сайт: www.angrynews.ru
 Профиль | | #1
Добавлено: 20.11.07 08:16
Ой, забыл, подскажите где можно посмотреть, как с ClipBoard работать. Конкретно, копирую слово, и оно должно отобразиться в, скажем, переменной в любой процедуре.
Спасибо

Ответить

Номер ответа: 2
Автор ответа:
 Nytrogen



Вопросов: 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
Автор ответа:
 Pavel



Вопросов: 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
Автор ответа:
 angrynews



Вопросов: 33
Ответов: 119
 Web-сайт: www.angrynews.ru
 Профиль | | #4
Добавлено: 20.11.07 16:59
а зачем конкатенацию делать?

Ответить

Номер ответа: 5
Автор ответа:
 angrynews



Вопросов: 33
Ответов: 119
 Web-сайт: www.angrynews.ru
 Профиль | | #5
Добавлено: 20.11.07 17:00
Господа, всем Риспект

Ответить

Номер ответа: 6
Автор ответа:
 Nytrogen



Вопросов: 18
Ответов: 186
 Профиль | | #6 Добавлено: 20.11.07 18:45
а зачем конкатенацию делать?


А как иначе впихнуть в формулу строку по частям?

Ответить

Номер ответа: 7
Автор ответа:
 angrynews



Вопросов: 33
Ответов: 119
 Web-сайт: www.angrynews.ru
 Профиль | | #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
Странно чот VBD и тут не отметился

А кто это такой? =)))

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам