Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 108
Excel

Запуск макроса при открытии определенного файла

24.10.2019, 14:34. Показов 4364. Ответов 37
Метки vba (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех.

Вопрос в следующем.
Есть файлы с разным названием и разным содержимым:
trackLog-2019-окт.-04_06-17-08
trackLog-2019-янв.-20_05-11-58
trackLog-2019-июн.-20_01-27-04
trackLog-2019-дек.-20_10-19-31
Открывая эти файлы в Экселе, получаются кракозябры.
trackLog-2019-окт.-20_09-17-09.rar
Сменить кодировку файла, я могу макросом и сделать авто открытие его при запуске Excel:
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
24
25
26
27
28
29
30
Private Sub Workbook_Open()
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\Users\KPNU-2\Desktop\trackLog-2019-окт.-20_09-17-08.csv", _
         Destination:=Range("$A$1"))
'        .CommandType = 0
        .Name = "trackLog-2019-окт.-20_09-17-08"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 65001
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub
Convert_Logs_Torque.rar

НО!

Открывать и менять кодировку таким образом, не совсем для меня удобно.
В макросе, нужно прописывать путь к самому файлу, а так как файлы разнуе, ьто вариант этот не подходит.

Возможно ли сделать макрос, чтобы открывая определенный файл, Excel менял кодировку содержимое файла, не указывая в макросе конкретный путь к файлу?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.10.2019, 14:34
Ответы с готовыми решениями:

Запуск макроса при открытии конкретного файла
Здравствуйте, подскажите пожалуйста, возможно ли запустить макрос "Макрос1" автоматически только если открываем файл upload.xlsx ?

Авто запуск макроса из личной книги при открытии файла с определенным именем
Привет, друзья! у меня есть много макросов в личной книге, как сделать что-бы при запуске файла с названием Книга1 запускался макрос...

Запуск макроса при открытии документа
Добрый день! В VBA еще новичок, поэтому буду говорить, как мне подсказали, если что исправьте. Написал макрос, сохранил его в формате...

37
 Аватар для Narimanych
2752 / 1726 / 779
Регистрация: 23.03.2015
Сообщений: 5,452
26.10.2019, 15:23
Студворк — интернет-сервис помощи студентам
oniava,

Цитата Сообщение от oniava Посмотреть сообщение
В данном файле выше занято ячеек A до D и 1 по 523 строку.


Как варианты :
ПОСЛ_СТРОКА = Cells(Rows.Count,1).End(xlUp).Row
ПОСЛ_СТОЛБЕЦ=Cells(1, Columns.Count).End(xlToLeft).Column

Наконец

[a1].CurrentRegion.Select

Hugo121,
Guru ,Sorry ...
0
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 108
26.10.2019, 15:32  [ТС]
Hugo121,

Вот как у меня выделяет
Visual Basic
1
ActiveSheet.UsedRange.Select
0
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 108
26.10.2019, 15:35  [ТС]
Narimanych,
Visual Basic
1
[a1].CurrentRegion.Select
Отличное решение!
Выделил, теперь нужно очистить все невыделеные ячейки от всех свойств.
Это вторая делема.
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
26.10.2019, 15:36
Это значит что Вы тянете данные на уже "изгаженный" лист... Тяните на чистый!
0
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 108
26.10.2019, 15:38  [ТС]
Hugo121,
Не че не понял из вышенаписанного Вами.

Суть, я выделил нужные мне ячейки, а то что не выделил нужно теперь очистить.
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
26.10.2019, 15:41
Делемы никакой нет в природе. И даже нет дилеммы - можно тянуть на новый лист, можно сперва полностью очистить существующий.
Я так вообще этот файл использовал бы только как инструмент, а все данные клал в новый файл, его и сохранял,без ненужного кода и срабатывания при открытии кем-то там позже - а то я предвижу следующий вопрос

Добавлено через 1 минуту
Цитата Сообщение от oniava Посмотреть сообщение
Суть, я выделил нужные мне ячейки, а то что не выделил нужно теперь очистить.
- откуда на тех, что ненужны вообще что-то есть? Или Вам нужно после того, как импортировали все данные, нужно из них оставить только 4 столбца?
0
 Аватар для Narimanych
2752 / 1726 / 779
Регистрация: 23.03.2015
Сообщений: 5,452
26.10.2019, 15:43
oniava,

У вас есть возможность прислать любой ваш тестовый файл ( без изменений)?
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
26.10.2019, 15:46
Narimanych, там выше есть архив с csv, если Вы об этом.
0
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 108
26.10.2019, 15:53  [ТС]
Narimanych,
Да Вы правы, ячейки пустые.
Но, я их хочу очистить от свойств, как раньше и говорил.
Картинки скинул, что выделенные пустые табличные ячейки, мне не нужны, не снизу, не справа.

Вот Вам разные файлы как просили:
Расшифровка логов.rar
0
 Аватар для Narimanych
2752 / 1726 / 779
Регистрация: 23.03.2015
Сообщений: 5,452
26.10.2019, 16:16
oniava,

Данные вы получаете в виде текстового файла или CSV?
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
26.10.2019, 16:17
Narimanych, csv=txt
0
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 108
26.10.2019, 16:24  [ТС]
Добавлено через 4 минуты
Narimanych,
Данные вы получаете в виде текстового файла или CSV?

Сканер строит логи с расширением CSV.

Да, не подумал, очищать содержимое кроме выделенного, действительно тупизм.
Таблица, у меня все равно будет до столбца "L".
А вот строк могу в таблице выделить 500, больше мне не нужно.
Тогда получилось другая задача.
Очистить содержимое от выделенных столбцов до столбца "L" включительно.
И также, очисть содержимое строк кот выделннных, до 500 строки включительно.

Вот так наверное будет правильнее.
0
 Аватар для Narimanych
2752 / 1726 / 779
Регистрация: 23.03.2015
Сообщений: 5,452
26.10.2019, 16:28
Hugo121,

Обычно данные выходят не в табулированном варианте txt...(не таблицей) ...
0
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 108
26.10.2019, 16:35  [ТС]
Совершенно верно, таблицу я создаю.
Можно сначала без таблицы вывести данные, потом их выделить функцией
Visual Basic
1
[a1].CurrentRegion.Select
и наложить на выделенное таблицу.
Так еще правильнее будет.
Я просто не умею
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
26.10.2019, 16:43
Правильнее взять чистый (новый) лист (ну или как вариант - сделать его чистым любым доступным способом), "наложить" на него данные, их (и только!) отформатировать как желаете.
Именно про это я всё время и говорю, но видно зря...
0
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 108
26.10.2019, 17:00  [ТС]
Hugo121,
Narimanych натолкнул меня на мысль.
Сейчас попробую реализовать нё.

Добавлено через 14 минут
Еще раз всем спасибо за подсказки!
Все, победил!!!
0
 Аватар для Narimanych
2752 / 1726 / 779
Регистрация: 23.03.2015
Сообщений: 5,452
26.10.2019, 17:02
oniava,

Гуру истину глаголит…
Цитата Сообщение от Hugo121 Посмотреть сообщение
Правильнее взять чистый (новый) лист (ну или как вариант - сделать его чистым любым доступным способом), "наложить" на него данные, их (и только!) отформатировать как желаете.
0
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 108
26.10.2019, 17:29  [ТС]
Все получилось без нового (чистого) листа.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.10.2019, 17:29

Запуск макроса Excel при открытии через COM
Всем привет, Чужая софтина открывает книгу Excel на основе шаблона через COM. Пихая туда данные, естественно. Задача -...

Автоматический запуск макроса при открытии книги?
Есть книга Книга1.xls и есть форма Form1? встроенная в эту книгу. Как сделать так, чтобы при открытии книги Книга1.xls - автоматически...

Запуск определенной формы при открытии определенного листа
Здравствуйте помогите мне с такой задачей, Есть у меня "Лист1", "Лист2", "Лист3", "Лист4", нужно, что при открытии ,...

Автоматический запуск макроса при открытии любой книги, которая соответствует конкретным условиям
Добрый день, уважаемые форумчане! Нужна ваша помощь:) Ситуация следующая. Мне на почту каждый день приходит екселевский файл, который...

Автозапуск макроса при открытии файла Excel
Как сделать, чтобы макрос запускался при открытии файла Excel. (это совсем не для вируса)


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

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru