Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 733 След.
Добавление строк в массив
 
Ещё как вариант - сразу создать массив размером с исходный, и перекладывать в него увеличивая индекс.
Затем в конце переложить, ну или использовать только собранное, если лишний пустой хвост память не напрягает.
Добавление строк в массив
 
Задача так и не понятна, но я её вижу например так -
- идёт отбор строк по какому-то массиву, циклом
- нужно получить новый массив с этими строками.
Я предлагаю сперва создать коллекцию отобранных индексов
затем создать массив нужного размера
циклом по коллекции наполнить новый массив.
Или как вариант - сразу всё собрать в коллекцию, затем переложить в массив. Ну это я уже повторяюсь...
Изменено: Hugo - 18 Фев 2020 19:02:03
Добавление строк в массив
 
Я вообще понял только последнее предложение первого поста :)
Предлагаю такой вариант - сперва собрать всё в коллекцию без ключей, затем в финале создать массив нужного размера и переложить, раз уж
Цитата
Argo9 написал:
ведь программа ожидает два
Сортировка дат в текстовом формате, Сортировка дат в текстовом формате
 
А может не ломать голову и позаботиться чтоб даты всюду были датами?
Сортировка дат в текстовом формате, Сортировка дат в текстовом формате
 
Ну я же написал.
Даже для чистоты эксперимента скопировал только этот столбец на другой лист - тоже сортируются.
Но разгадка думаю вот:
Код
<f>DATEVALUE(B2)</f><v>37845<

Это в sheet1.xml
Т.е. там на самом деле даты, но которые каким-то образом отображаются как текст. Но сортируются (у нас) как даты. А у других - как отображаются...
Изменено: Hugo - 18 Фев 2020 17:52:16
Сортировка дат в текстовом формате, Сортировка дат в текстовом формате
 
У меня сортируются. Непонятно... А откуда эти даты берутся?
Файл csv на листе открывается как текст
 
Код
Workbooks.Open Filename:="c:\Книга1.csv", local:=True

Склейка текста по условию
 
Если нет PQ (как например у меня), то в любом случае можно написать свою UDF. Если очень нужно.
Перенос не повторяющихся значений.
 
Если вдруг Мак и словарей нет - можно использовать коллекцию с ключом. Если добавилось - значит ранее не было в коллекции, если ошибка - значит было.
Но с словарём (в Windows) проще -
Код
if словарь.exists(значение) then
Изменено: Hugo - 14 Фев 2020 16:15:22
Сохранение макросом в нестандартный CSV формат, Помогите, люди добрые)
 
csv - это текстовый файл, что в нём на самом деле нужно смотреть блокнотом.
А как его открывает Эксель - это дело Экселя, и у разных людей он может открываться как угодно, у меня например Ваш который создан макросом открывается по умолчанию без разбивки по столбцам, плюс ещё часто могут быть сюрпризы с датами, и например с номерами кредитных карт или подобными значениями.
Сохранение макросом в нестандартный CSV формат, Помогите, люди добрые)
 
Добрый день.
Если добавить параметр
Код
local:=True

то разделитель как при ручном сохранении, и кстати не портятся EAN/UPC как в CSV(Сохранен вручную).csv
Т.е.
Код
    ActiveWorkbook.SaveAs Filename:="c:\путь\TestCSV150.csv", _
        FileFormat:=xlCSV, CreateBackup:=False, local:=True
Изменено: Hugo - 14 Фев 2020 15:07:49
Экспорт из Word, не открывая файл
 
Попробовал - на выходе пустой текст.
Экспорт из Word, не открывая файл
 
Да, закрывать только файлы, приложение закрывать только в самом конце - так не будете тратить время на многократное открытие Ворда.
Как читать doc без Ворда - не знаю, думаю полноценно никак.
Экспорт из Word, не открывая файл
 
Вообще экспорт производит тот, кто экспортирует.
А импорт - тот кто импортирует.
Поэтому не может быть
Цитата
Экспорт из Word, не открывая файл
:)
А по задаче - если это именно doc, то попробуйте не открывать приложение Ворд на каждом файле, открывайте файлы в уже с начала процесса открытом Ворде.
Как обойти ограничение кол-ва символов в выпадающем списке?
 
Да. Если будет два значения, сумма символов которых с разделителем превышает 256 - то уже будет ошибка.
В этом примере максимум - числа 0-88.
Изменено: Hugo - 13 Фев 2020 17:50:41
Как обойти ограничение кол-ва символов в выпадающем списке?
 
Там есть ограничение на длину строки (что в коде создаётся из массива).
Как обойти ограничение кол-ва символов в выпадающем списке?
 
Да, я видел изначально 88 записей. Создал 100, сохранил с другим именем, закрыл. При открытии - ошибка. спиок пустой. Создал заново. Эксель 2010 х32
P.S. повторил, но имя не менял. При открытии ошибки нет, но и списка тоже... Но создаётся 100 записей.
Изменено: Hugo - 13 Фев 2020 17:01:09
Как обойти ограничение кол-ва символов в выпадающем списке?
 
У меня этот макрос создаёт список из 100 значений. Но после сохранения файла он открывается с ошибкой и список пропадает вообще. Но его можно снова создать этим макросом.
Изменено: Hugo - 13 Фев 2020 16:48:21
Как обойти ограничение кол-ва символов в выпадающем списке?
 
Да, была такая штука - при открытии файла выпадала ошибка при наличии такого списка. Я обходил так - до сохранения (или при закрытии) список убивал, при открытии (по факту после) создавал.
Копируем код макроса и вставляем во все файлы в папке в код
 
Возможно достаточно использовать один код из персональной книги.
Функция сжать пробелы макросом (VBA)
 
сжать<>удалить
Сбор данных из разных листов с автоматической сортировкой в алфавитном порядке
 
Теоретически можно. Макросом.
Практически никто код писать не будет, ну разве что за почасовую оплату (время не нормировано...)
А вот если убрать все объединения - дело сильно упрощается.
Вывод повторяющихся строк на новый лист
 
Зачем отбирать уникальные и копировать? СЧЁТЕСЛИ() и затем фильтр на все кто не 1... Самое тупое это :)
выбор всех значений из массива по условию, Поиск аналогов
 
Добрый вечер.
В одной ячейке не подходит? На чуть подправленной UDF из копилки.
Перенос данных из объединенных ячеек одного документа в одну ячейку другого документа. VBA, Макрос VBA
 
Я часто заставляю пользователей не выбирать файл в диалоге, что неудобно, а предлагаю кликнуть ячейку нужного листа (использую экселевский инпутбокс тип8), а там уже через Parent ячейки получаем всё что нужно остальное.
Единственное - чтоб физически кликнуть, часто файлы должны быть изначально видимы на экране (у кого есть OfficeTab - не касается, тем проще).
Построчно прочитать текстовый файл с кириллицей в utf-8, вывести его содержимое на листе.
 
Но не забудьте - в проекте должен быть модуль с тем кодом, что я дал выше. Можно в этом же модуле всё рядом положить.
Изменено: Hugo - 8 Фев 2020 22:36:42
Построчно прочитать текстовый файл с кириллицей в utf-8, вывести его содержимое на листе.
 
Можно и в тот первый код внедрить показанную функцию, подскажу как раз не умеете:
Код
Cells(Row, 1).Value = DecodeUTF8(strLine)
Изменено: Hugo - 8 Фев 2020 22:28:30
Заменить цены первого файла на цены со второго
 
Эти файлы не экселевские, могут быть всякие сюрпризы при сохранении (да и при открытии, у меня например по умолчанию открывает с кракозябрами и всё в одном столбце).
Мой макрос их обработает, но файлы предварительно нужно пересохранить в xls/xlsx.
Проверил, настройки на скрине http://prntscr.com/qzbw70
P.S. Кстати как вариант в этом случае - файл КУДА тянем можно открыть вручнуюв правильном виде, я например в новую книгу импортировал данные, и в настройках прописал просто Книга1, и код отработал корректно. Но можно и полный путь указать, если файл csv открыт в нужном виде.
Или если автоматом оба файла открываются корректно - можно и с csv пробовать.
Изменено: Hugo - 8 Фев 2020 13:51:37
Заменить цены первого файла на цены со второго
 
А можно и приобрести.
Построчно прочитать текстовый файл с кириллицей в utf-8, вывести его содержимое на листе.
 
Цитата
elegi2003 написал:
а только некоторые,
- можно только их и конвертнуть. Но сейчас некогда код искать, но вообще лучше иметь образец такого файла.
Можно пробовать
Код
Public Declare Function MultiByteToWideCharA Lib "kernel32.dll" Alias "MultiByteToWideChar" ( _
    ByVal CodePage As Long, ByVal dwFlags As Long, _
    ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, _
    ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long

Public Function DecodeUTF8(ByVal sInput As String) As String
Dim iStrSize As Long, lMaxSize As Long, str1 As String
Dim p As Long
Dim str2 As String
    If Len(sInput) = 0 Then Exit Function

    lMaxSize = Len(sInput)
    str1 = String$(lMaxSize, 0&)
    iStrSize = MultiByteToWideCharA(65001, 0&, sInput, &HFFFF, StrPtr(str1), lMaxSize)
    If iStrSize > 0 Then
        DecodeUTF8 = Left$(str1, iStrSize - 1)
    Else
        DecodeUTF8 = sInput
    End If
End Function
Изменено: Hugo - 8 Фев 2020 02:19:44
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 733 След.
Наверх