Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос копирования в буфер ячеек по условию - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос копирования в буфер ячеек по условию (Макросы/Sub)
Макрос копирования в буфер ячеек по условию
sIT Дата: Четверг, 13.04.2017, 15:35 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день! Прошу помощи, так как в VBA совсем начинающий, а задача для реализации есть.
Необходимо скопировать в буфер (предположительно записать макрос в кнопку) значения ячеек из столбца С, которые не равны нулю (или другое возможное условие "<", ">", ...).
Задача вроде довольно простая и решается фильтром, но очень хочется постигать "науку" и работать головой, а не руками.
Заранее спасибо! yes
К сообщению приложен файл: test.xlsx (30.7 Kb)


горе умелец!
 
Ответить
СообщениеДобрый день! Прошу помощи, так как в VBA совсем начинающий, а задача для реализации есть.
Необходимо скопировать в буфер (предположительно записать макрос в кнопку) значения ячеек из столбца С, которые не равны нулю (или другое возможное условие "<", ">", ...).
Задача вроде довольно простая и решается фильтром, но очень хочется постигать "науку" и работать головой, а не руками.
Заранее спасибо! yes

Автор - sIT
Дата добавления - 13.04.2017 в 15:35
Karataev Дата: Четверг, 13.04.2017, 20:34 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Что Вы имеете ввиду под буфером? Лучше опишите, что нужно сделать с данными, которые не равны нулю, куда их надо вставить или что с ними надо сделать?
С буфером обмена обычно не работают, т.к. в этом нет необходимости.


Сообщение отредактировал Karataev - Четверг, 13.04.2017, 20:34
 
Ответить
СообщениеЧто Вы имеете ввиду под буфером? Лучше опишите, что нужно сделать с данными, которые не равны нулю, куда их надо вставить или что с ними надо сделать?
С буфером обмена обычно не работают, т.к. в этом нет необходимости.

Автор - Karataev
Дата добавления - 13.04.2017 в 20:34
K-SerJC Дата: Пятница, 14.04.2017, 07:19 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
так то, если в подробности не вдаваться зачем, и буфер это буфер обмена системы, то вот[vba]
Код


Sub ПримерИспользования()
    txt = ClipboardText
    MsgBox txt, vbInformation, "Содержимое буфера обмена Windows"
End Sub

Function ClipboardText() ' чтение из буфера обмена
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .GetFromClipboard
        ClipboardText = .GetText
    End With
End Function

Sub SetClipboardText(ByVal txt$) ' запись в буфер обмена
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .SetText txt$
        .PutInClipboard
    End With
End Sub
[/vba]

в вашем случае не ясна цель, скорее всего можно проще


Благими намерениями выстелена дорога в АД.
 
Ответить
Сообщениетак то, если в подробности не вдаваться зачем, и буфер это буфер обмена системы, то вот[vba]
Код


Sub ПримерИспользования()
    txt = ClipboardText
    MsgBox txt, vbInformation, "Содержимое буфера обмена Windows"
End Sub

Function ClipboardText() ' чтение из буфера обмена
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .GetFromClipboard
        ClipboardText = .GetText
    End With
End Function

Sub SetClipboardText(ByVal txt$) ' запись в буфер обмена
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .SetText txt$
        .PutInClipboard
    End With
End Sub
[/vba]

в вашем случае не ясна цель, скорее всего можно проще

Автор - K-SerJC
Дата добавления - 14.04.2017 в 07:19
sIT Дата: Пятница, 14.04.2017, 11:16 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
я прошу прощения, если сразу все-таки неясно сформулировал вопрос.
в приложенном файле, сделал кнопку с копированием большого range под данные.
вот как сделать, чтобы копировались значения не "0,0"?
К сообщению приложен файл: test.xlsm (39.7 Kb)


горе умелец!
 
Ответить
Сообщениея прошу прощения, если сразу все-таки неясно сформулировал вопрос.
в приложенном файле, сделал кнопку с копированием большого range под данные.
вот как сделать, чтобы копировались значения не "0,0"?

Автор - sIT
Дата добавления - 14.04.2017 в 11:16
sboy Дата: Пятница, 14.04.2017, 11:42 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Если правильно понял
[vba]
Код
Private Sub CommandButton1_Click()
    Range("C1:C" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
End Sub
[/vba]
К сообщению приложен файл: 1239855.xlsm (41.4 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
Если правильно понял
[vba]
Код
Private Sub CommandButton1_Click()
    Range("C1:C" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
End Sub
[/vba]

Автор - sboy
Дата добавления - 14.04.2017 в 11:42
sIT Дата: Пятница, 14.04.2017, 15:34 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
sboy, огромное спасибо!!
пока до конца не очень понимаю как это работает, но то что мне и нужно было! yes
обязательно разберусь!


горе умелец!
 
Ответить
Сообщениеsboy, огромное спасибо!!
пока до конца не очень понимаю как это работает, но то что мне и нужно было! yes
обязательно разберусь!

Автор - sIT
Дата добавления - 14.04.2017 в 15:34
_Boroda_ Дата: Пятница, 14.04.2017, 15:47 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А как же
которые не равны нулю (или другое возможное условие "<", ">", ...).

У меня такой вариант
[vba]
Код
Private Sub CommandButton1_Click()
    Application.ScreenUpdating = 0
    r1_ = Range("C" & Rows.Count).End(3).Row
    If ActiveSheet.AutoFilterMode Then
        Selection.AutoFilter
    End If
    Range("C1:C" & r1_).AutoFilter Field:=1, Criteria1:="<>0,0"
    r11_ = Range("C" & Rows.Count).End(3).Row
    Range("C1:C" & r11_).SpecialCells(xlCellTypeVisible).Copy
    Range("H1").Select 'вставляем куда нужно
    ActiveSheet.Paste
    Range("C1:C" & r1_).AutoFilter
    Application.ScreenUpdating = 1
End Sub
[/vba]
К сообщению приложен файл: test-3-1.xlsm (47.1 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА как же
которые не равны нулю (или другое возможное условие "<", ">", ...).

У меня такой вариант
[vba]
Код
Private Sub CommandButton1_Click()
    Application.ScreenUpdating = 0
    r1_ = Range("C" & Rows.Count).End(3).Row
    If ActiveSheet.AutoFilterMode Then
        Selection.AutoFilter
    End If
    Range("C1:C" & r1_).AutoFilter Field:=1, Criteria1:="<>0,0"
    r11_ = Range("C" & Rows.Count).End(3).Row
    Range("C1:C" & r11_).SpecialCells(xlCellTypeVisible).Copy
    Range("H1").Select 'вставляем куда нужно
    ActiveSheet.Paste
    Range("C1:C" & r1_).AutoFilter
    Application.ScreenUpdating = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 14.04.2017 в 15:47
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос копирования в буфер ячеек по условию (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!