Статья про файл и его изменение, но в последних постах добавилось еще и решение, от куда он появляется) и получилось законченное решение вопроса по всей теме.
evgeniygeo, а где тут маска задается. Например файл имеет название Остатки на складе СПб от 19.03.2024.xlsx я хочу найти по маске "Остатки на складе СПб"
Файлы качаются с разным окончанием ежедневно Остатки на складе СПб от 18.03.2024.xlsx Остатки на складе СПб от 19.03.2024.xlsx Остатки на складе СПб от 20.03.2024.xlsx
Если правильно понял, с учетом того что в интернете нет решения, такое не возможно в принципе "Поиск файла по маске и переименование" ? Мне кажется само решение имеет спрос и полезно.
Можно ли поднять тему, вопрос касательно переименования.
Задача: Зная путь к файлу, переименовать его. Но, название файла меняется (стоит дата в названии), соответственно нужно использовать только часть названия, что постоянно Пример файла: Остатки на складе СПб от 19.03.2024.xlsx ........можно использовать Остатки на складе СПб от*.xlsx и привести к виду Остатки на складе СПб.xlsx Как вариант можно то же самое сделать с расширением .xml
PS Макросов переименовывания много, но все они работают если название исходника не меняется.
День добрый, Прошу поправить макрос, заметил что мало им пользуюсь, тк выделяет слишком много лишнего... Суть: сравнение двух столбцов С и D именно по числам и выделение ячеек с разницей только в D (потом с этими ячейками проходят некоторые действия) Сейчас макрос сравнивает и выделяет все, много ненужного. Важно именно числа На скрине пример что не нужно выделять Файл с макросом приложил PS Макрос от Евгения выше. У меня лично нет понимания вообще в коде, сори)
Код
'Сравнивает два столбца С и D и выделяет отличия в D в сводной
Sub Парсинг_Сравнить_два_столбца_CD()
Dim Rg1 As Range, Rg2 As Range, Sh As Worksheet, i&, Arr1, Arr2, kRow&, nRow&, col1 As New Collection
nRow = 3: Set Sh = ActiveSheet
Set Rg1 = Sh.Range("C1"): Set Rg1 = Range(Rg1, Sh.Cells(Rows.Count, Rg1.Column).End(xlUp)) 'Сравнивает два столбца С и D и выделяет отличия в D
Set Rg2 = Sh.Range("D1"): Set Rg2 = Range(Rg2, Sh.Cells(Rows.Count, Rg2.Column).End(xlUp)) 'Сравнивает два столбца С и D и выделяет отличия в D
Arr1 = Rg1.Value: Arr2 = Rg2.Value
kRow = Application.WorksheetFunction.Min(UBound(Arr1), UBound(Arr2))
For i = nRow To kRow
If Arr1(i, 1) <> Arr2(i, 1) Then col1.Add i
Next
Set Rg1 = Nothing
For i = 1 To col1.Count
If Rg1 Is Nothing Then Set Rg1 = Sh.Cells(col1(i), Rg2.Column) Else Set Rg1 = Union(Sh.Cells(col1(i), Rg2.Column), Rg1)
Next
Rg1.Select
End Sub
Только вот опять мысль, а зачем такой большой макрос в этой книге нужен, если можно так же сделать отдельный лист и прописать в моем коде ячейку с этого листа, в которой будет ссылка
Sanja, там файлик есть на множество ссылок.. в принципе наверно вынесу все ссылки на отдельный лист, так наверно еще и удобней. Плюс можно переименовывать. Спасибо за совет, потестю.
PS Но все таки интересно, есть ли решение в одну строчку кода скачать файл.
Я видел этот код, то там "500" строк для одной ссылки. У меня просто нет таких знаний что бы его переделать под несколько ссылок, да еще что бы все это не конфликтовало с остальным кодом
Вечер добрый. Имею такой код в большом макросе, его суть это скачать файлы по ссылке которая прописана в ячейке Excel. Я пошел по самому простому пути и прописал эти ссылки в ячейках и макрозаписью сделал их открытие (скачивание). Сейчас этот код работает, но структура листа меняется и приходится в коде переписывать местоположение ячеек с ссылками.
Евгений, спасибо большое, то что нужно, облегчили задачу.
PS Можно не отвечать, это уже бонус, развитие макроса на перспективу. Если сравнить C и столбики D, E, F (вместе все) с выделением в (D, E, F) при этом не выделять ячейки пустые (нет формул и значений)
написал: Sub dffhhdf() Dim Rg1 As Range, Arr1, col1 As New Collection Set Rg1 = Range("C:D") Set Rg1 = Intersect(Rg1, Rg1.CurrentRegion) Arr1 = Rg1.Value For i = 3 To UBound(Arr1) If Arr1(i, 1) <> Arr1(i, 2) Then col1.Add i Next Set Rg1 = Nothing For i = 1 To col1.Count If Rg1 Is Nothing Then Set Rg1 = Cells(col1(i), 4) Else Set Rg1 = Union(Cells(col1(i), 4), Rg1) Next Rg1.Select End Sub
Чуть запутался в коде. А как сравнить столбик D с F с выделением отличий в F ?
написал: Именно макросом? Через F5 или Ctrl-F не подойдет?
Через F5 - не совсем понимаю каким образом Ctrl-F - это поиск.. то же не понятна схема выделения отличий в двух столбцах ЗЫ Макрос это сделает мгновенно (только в модуле выбираешь что и с чем сравнить)
Прошу подсказать макрос, все что нашел в интернете это либо выделение строк, либо выделение столбца, либо перенос отличий, либо заливка отличий.
Мне нужно просто выделить значения в столбце D, которые отличаются от значений в столбце C. (столбцы C и D могут быть не обязательно вместе, могу сравнить E с С)
В столбцах стоят формулы, в которых видны значения
PS После выделения у меня с этими ячейками проходят определенные действия…
Макрос Вставка даты с временем при сохранении книги в ячейку, Дата воспринимается как число, нужно как дата текст. Подходит только если вставить слово, например "Время 21.12.23 12:16:26"
Как итог, может кому пригодится В ЭтаКнига Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 'В ЭтаКнига кладем With Worksheets("Сводная") 'Название листа .Range("G1") = CStr(Format(Now, "dd.mm.yyyy hh:mm:ss")) 'дата и время сохранения формат 21.12.2023 16:15:42 .Range("G2") = "Time " & CStr(Format(Now, "hh:mm:ss")) 'только время сохранения формат Time 16:15:43 End With End Sub
Макрос Вставка даты с временем при сохранении книги в ячейку, Дата воспринимается как число, нужно как дата текст. Подходит только если вставить слово, например "Время 21.12.23 12:16:26"
Нет,тут походу что то серьезное, наверно все это от использования какого макроса. Первый Лист15 при нажатии Alt + F11 переносит на страницу листа последнего Лист15...(импорт..) При чем название всех "хлам" лстом до этого листа имеет одно название (ниже) ЭтаКнига30 Последний типа правильный лист Лист15...(импорт..) имеет то же название Лист15...(импорт..)
Макрос Вставка даты с временем при сохранении книги в ячейку, Дата воспринимается как число, нужно как дата текст. Подходит только если вставить слово, например "Время 21.12.23 12:16:26"
Макрос Вставка даты с временем при сохранении книги в ячейку, Дата воспринимается как число, нужно как дата текст. Подходит только если вставить слово, например "Время 21.12.23 12:16:26"
написал: Оберните дату в функцию конвертации в текст
Все равно именно время воспринимается как число. Программа принимающая файл не воспринимает форматы в принципе. Либо текст, либо число Вот дата с временем грузится правильно. Время как число Можно дать вариант время с символом впереди, это поможет наверно)
Макрос Вставка даты с временем при сохранении книги в ячейку, Дата воспринимается как число, нужно как дата текст. Подходит только если вставить слово, например "Время 21.12.23 12:16:26"
Макрос Вставка даты с временем при сохранении книги в ячейку, Дата воспринимается как число, нужно как дата текст. Подходит только если вставить слово, например "Время 21.12.23 12:16:26"
Да, я Ваш код и использую, только ячейки поменял и лист
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) With Worksheets("Сводная") .Range("G1") = Format(Now, "dd.mm.yyyy hh:mm:ss") .Range("G2") = Format(Now, "hh:mm:ss") End With End Sub
Программа принимающая файл воспринимает время как число.
Макрос Вставка даты с временем при сохранении книги в ячейку, Дата воспринимается как число, нужно как дата текст. Подходит только если вставить слово, например "Время 21.12.23 12:16:26"
Макрос Вставка даты с временем при сохранении книги в ячейку, Дата воспринимается как число, нужно как дата текст. Подходит только если вставить слово, например "Время 21.12.23 12:16:26"