Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2009, 12:04   #1
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
Восклицание Макрос для Excel

Помогите создать макрос (я в этом полный ноль).. У меня есть Лист, в ячейки A1:A3, B1:B3 и С1:С3 вводятся значения. Excel обсчитывает их.. Потом нужно написать в Ячейку E7 текст "Сохранить" и при нажатии какой-то комбинации клавиш (например Ctrl+Shift+M) должен запуститься макрос который определят если ли Текст "Сохранить" в ячейки E7 и если есть, то сохранить текст из определенных ячеек (а именно: A1:A3, B1:B3,C1:C3, E1:E3, A6, B6, A8, B8, A9, B9, A10, B10, A12, B12, A13, B13, A14, B14, A16:A19 и A21:A23) в текстовый файл TEB.txt рядом с документом Excel.

Помогите пожалуйста
W0LF вне форума Ответить с цитированием
Старый 30.10.2009, 15:07   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

В модуль книги:
Код:
Private Sub Workbook_Open()
    Application.OnKey "^+m", "test"
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.OnKey "^+m"
End Sub
В стандартный модуль:
Код:
Option Compare Text

Sub test()
    On Error Resume Next
    If [e7] <> "Сохранить" Then Exit Sub
    Dim ra As Range, MyDataObj As New DataObject, ar As Range
    Set ra = Range("A1:A3, B1:B3, C1:C3, E1:E3, A6:B6, A8:B8, A9:B9, A10, B10, A12:B12, A13:B13, A14, B14, A16:A19, A21:A23")

    For Each ar In ra.Areas
        ar.Copy: MyDataObj.GetFromClipboard: newtxt = MyDataObj.GetText()
        txt = txt & newtxt
    Next ar
    Application.CutCopyMode = 0

    NewFilename = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, "TEB.txt")
    Set fso = CreateObject("scripting.filesystemobject")
    Set ts = fso.CreateTextFile(NewFilename, True)
    ts.Write txt: ts.Close: Set ts = Nothing: Set fso = Nothing
End Sub
Результат:
Цитата:
Сообщение от TEB.txt
данные 1
данные 2
данные 3
данные 101
данные 102
данные 103
данные 201
данные 202
данные 203
данные 401
данные 402
данные 403
данные 6 данные 106
данные 8 данные 108
данные 9 данные 109
данные 10
данные 110
данные 12 данные 112
данные 13 данные 113
данные 14
данные 114
данные 16
данные 17
данные 18
данные 19
данные 21
данные 22
данные 23
Пример файла с макросом:

EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для набора номера из Excel Инн@ Microsoft Office Excel 31 29.12.2013 00:44
Надо макрос для Excel для перестановки букв dionisprf Microsoft Office Excel 2 10.06.2009 06:04
Интересный макрос для создания писем в Outlook через Excel Neo007 Microsoft Office Excel 17 19.04.2009 20:44
помогите, пожалуйсто, написать макрос для excel bacalavr Microsoft Office Excel 2 04.04.2008 11:39
Макрос в Excel для обработки группы файлов ad_sum Microsoft Office Excel 1 29.12.2007 16:56