Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Visual Basic Новый топик    Ответить
 Скопировать массив в буфер обмена для вставки методом Ctrl+V  [new]
lopuxi
Member

Откуда: Москва
Сообщений: 280
Добрый день всем великим гуру программистам

Можно ли решить такую проблему. Есть у меня заполненный ListBox, такая простоя табличка, в 4 колонки со значениями. Мне нужно все эти данные из LisBox скопировать, что бы пользователь мог вставить их на другой лист Excel или даже другую книгу Excel

Я сейчас хочу занести их в массив, а вот потом... даже не знаю, можно ли массив перевести в буфер обмена, каким то волшебным образом?

Собрать данные в массив - несложно. А вот как так сделать что бы они в буфере обмена оказались?

Dim MyCopyMassivArr(11, 4) As Variant
For iCol = 0 To 3
    For iRow = 0 To 10
        MyCopyMassivArr(iRow, iCol + 1) = ListBox_Total.Column(iCol, iRow)
    Next
Next



Я там файл прикрепил. UserForm вызывается двойным кликом зеленым строчкам на листе. По итоговым данным по городу.

А может есть какие то иные способы скопировать то что мне нужно.
Да, копирую я не ячейки в Excel. Копирую я то что уже макрос собрал в ListBox

К сообщению приложен файл (1111.xlsm - 61Kb) cкачать
31 окт 16, 14:03    [19841829]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать массив в буфер обмена для вставки методом Ctrl+V  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 18580
lopuxi
можно ли массив перевести в буфер обмена
Можно. Надо собрать всё в одну строковую переменную, при этом элементы одной строки разделяются vbTab, а сами строки - vbNewLine, после чего поместить полученную строку в буфер обмена методом Clipboard.SetText (предварительно рекомендуется очистить буфер методом Clipboard.Clear).
31 окт 16, 15:34    [19842444]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать массив в буфер обмена для вставки методом Ctrl+V  [new]
грязный комплектовщик
Member

Откуда: екб
Сообщений: 128
Akina
lopuxi
можно ли массив перевести в буфер обмена
... предварительно рекомендуется очистить буфер методом Clipboard.Clear).

Разве есть объект Clipboard в VBA?
31 окт 16, 15:39    [19842481]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать массив в буфер обмена для вставки методом Ctrl+V  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 18580
А в VBA есть аналогичные методы у Application.
31 окт 16, 16:14    [19842700]     Ответить | Цитировать Сообщить модератору
 Re: Скопировать массив в буфер обмена для вставки методом Ctrl+V  [new]
lopuxi
Member

Откуда: Москва
Сообщений: 280
Akina, Спасибо!
Да, совет оказался очень полезным! Помогло. Проблему решил)
31 окт 16, 17:31    [19843244]     Ответить | Цитировать Сообщить модератору
Все форумы / Visual Basic Ответить