Привет, планета! Не справляюсь сам, нужна Ваша помощь...
Есть файл xlsx, если сохранить его в csv, то он получается (условно) 177 мегабайт. В каждой строке в столбце № 8 находится артикул товара и по столбцам другая информация по нему (довольно часто ситуация такова, что есть ряд строк с одним артикулом). Необходимо усложнить процесс сохранения так, чтобы макрос делил его на куски по 9.8-9.9 Мб (нежелательно чтобы было меньше, но впринципе возможно по надобности — если несущественно меньше; но меньше 10 Мб должно быть строго). Последний файл уже понятно сколько получится. То есть сложностей несколько:
Чтобы файлы делились только "блоками" (каждый набор строк, относящихся к одному артикулу — отдельный блок)
Кажется, на vba нет функции, позволяющей получить текущий размер файла до его сохранения. А каждое сохранение — пара секунд... Какие есть тут идеи?
Вообще круто было бы иметь возможность при каком-то промежуточно заполненном xlsx-файле иметь возможность понимать, сколько он будет весить в текстовом формате (csv или Текст Юникод). Есть у кого какие полезные мысли?..
Подскажите, пожалуйста, можно ли как-то на VBA Excel после объявления переменной тут же присвоить ей значение. Что-то вроде как на обычном бэйсике Dim x As Integer = 10 не срабатывает — компилятор ругаеццо. Цель — максимальная экономия места на экране, чтобы не создавать отдельную строку для присваивания значения.
Привет, планета! Столкнулся с такой проблемой, что пересохраняя *.xlsx в *.cvs (офис 16-ый) символы дробей (½, ⅓, ⅔) кодируются как знаки вопроса (?). Если кто-то сталкивался с этим делом и знает решение — облегчите, пожалуйста, поиски, затянувшиеся на второй час... Перепробовал несколько найденных предложенных вариантов — не помогло. Прикрепляю файл для примера
Привет, планета! Вот часть моего макроса. Дебаг чего-то ругается во второй строке...
Код
If Not ra.Find("Grid Value", , xlValues, xlPart) Is Nothing Then
For Each cell In ra
If Len(cell) > 2 Then
If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
End If
Next cell
End If
Произвожу простую сортировку "по алфавиту": http://i.imgur.com/O3y0NsZ.png Сперва по первому столбцу (с артикулами), затем по третьему (с размерами). При этом в третьем столбце текстовые значения по типу <число><знак дефиса> сортируются отдельно от текстовых значений <число>. Например, вот: http://i.imgur.com/2QG25EY.png Подскажите, пожалуйста: 1) Можно ли без применения макроса сортировать как требуется? А требуется так: 3-, 4, 4-, 5 — то есть размер "4-" = "4½". 2) Или лучше небольшой макрос написать (что последний раз делал в школе 9 лет назад), правильно выполняющий сиё несложное действо?
Есть ячейки с названиями товаров и артикулами. Артикулы имеют вид "шесть символов дефис три цифры" Примеры:
Бейсболка Nike Block Fc True Snapback 690169-060
Белье Nike Pro Брюки Hyperwarm Comp Tight NB7741-010 JR
ШАПКА 456135-060 NIKE TEAM REVERSIBLE BEANIE
Пытаюсь данной формулой заменить артикулы (убрать их): =ПОДСТАВИТЬ(J18; "??????-???"; "") Но почему-то не срабатывает в этой функции ? — замена любого символа, равно как и * — замена любых символов. Есть идеи? Проблема в том, что этот артикул может быть в любом месте в названии товара и функции типа ЗАМЕНИТЬ и пр. тоже вроде как не применишь. По сути просто надо задать формулой ту замену, которая прекрасно работает при Ctrl+F