Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 12.02.2016
Сообщений: 3
1

Объединить 2 макроса в 1

12.02.2016, 13:59. Показов 1454. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Парни, выручайте. Есть 2 макроса, один на открытие диалогового окна и выбора файла, 2-ой на импорт txt файла в ексель, по отдельности работают на ок, но как их совместить вместе, чтобы 1. открывалось окно выбора файла. 2 я сам выбирал файл и 3. он его импортировал. Очень срочно нужно по работе - горю(

Добавлено через 19 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub DirInCell()
Dim fname As String
Dim result As Integer
With Application.FileDialog(1)
.Title = "Выберите файл"
.InitialFileName = "начальная папка"
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Pack files", "*.*", 1
result = .Show
If result = 0 Then Exit Sub
fname = Trim(.SelectedItems.Item(1))
End With
ActiveCell = fname
End Sub
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub LoadTXT()
    Dim sFiles As String, s As String, r As Double
    Cells.Clear
    sFiles = "путь к файлу"
    Open sFiles For Input As #1
    Do While Not EOF(1)
        Line Input #1, s
        If InStr(1, s, ";") > 0 Then
 
               Do While InStr(1, s, ";;") > 0 '
                   s = Replace(s, ";;", ";") '
               Loop
 
                t = Split(s, ";")
                r = r + 1
                For i = 0 To UBound(t)
                        Cells(r, i + 1) = t(i)
                 Next i
 
        End If
    Loop
    Close #1
End Sub
Вот они 2
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2016, 13:59
Ответы с готовыми решениями:

Объединить 2 макроса
Добрый день! Outlook 2010 Есть 2 макроса, которые по отдельности работают без проблем. Первый...

Объединить 3 готовых макроса в 1 файл Excel
Доброго времени суток. Помогите пожалуйста! Имеются 3 Excel файла, на каждом из которых имеются...

Запуск макроса из макроса ИЛИ повторение одного и того же кода
Excel Есть код в 10 строк (назовем его "блок"), который повторяется 5 раз в модуле (макросе)....

Вызов макроса по имени макроса в ячейке
Добрый вечер форумяне! существует ли такая возможность, что бы кликнув по определенной ячейке...

5
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
12.02.2016, 14:09 2
Лучший ответ Сообщение было отмечено master130188 как решение

Решение

Вместо
ActiveCell = fname
пишите
call LoadTXT(fname)
а вместо
Sub LoadTXT()
пишите
Sub LoadTXT(sFiles As String)
ну и в коде убираете объявление и задание значения sFiles - это уже сделано.
0
0 / 0 / 0
Регистрация: 12.02.2016
Сообщений: 3
12.02.2016, 14:22  [ТС] 3
Спасибо заработало)
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
12.02.2016, 14:43 4
Теперь Вы знаете как передавать аргументы макросам (ну не всё конечно...) - часто можно использовать. В дааном случае можно ещё передавать кроме имени файла и объект куда будет происходить импорт (сейчас пишется в активный лист, но можно указать конкретный лист конкретной книги).
И кстати там выгрузку строки в строку быстрее делать не циклом, а сразу массив в диапазон. Но если строк не много и короткие - разницу можно и не заметить.
0
0 / 0 / 0
Регистрация: 12.02.2016
Сообщений: 3
12.02.2016, 14:57  [ТС] 5
А можно ли сделать чтобы к примеру только один столбец выгружался на лист и в определённое место? И ещё когда я делал импорт следующего файла то такой же столбец появлялся рядом с предыдущем, как то так)

Добавлено через 7 минут
К примеру я на листе создам таблицу и мне в идеале нужна автоматизировать процесс ее заполения. А нужные данные из всего массива в txt при импорте находятсч в 1 столбце. Вот в конечном итоге к примеру будет таблица с 5 столбцамт данных и нажимая макрос и указывая путь к файлу - она заполнялась. Надеюсь плнятно изъяснил
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
12.02.2016, 15:44 6
Можно.
Если нужен один столбец - зачем перебираете весь массив t? Достаточно взять t(0).
Ну а чтоб выгружать рядом - нужно видеть файлы и знать процесс - может можно сразу указать все 5 файлов, так даже всем будет проще.
0
12.02.2016, 15:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2016, 15:44
Помогаю со студенческими работами здесь

Запуск макроса из другого макроса
Как в Word запустить из одного макроса другой? RunMacro куда засунуть?

Вызов из макроса другого макроса
general.xlsm Sub OpenFile1() Workbooks.Open Filename:="Z:\1\2.xlsm" Call...

Корректировка макроса
В общем суть такова: Я хотел написать макрос который по выделенным ячейкам должен отмечать цветом...

Ошибка макроса
Добрый день! подскажите есть книга с которой нужно разделить строки и перенести в другую книгу по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru