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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 722 След.
Глючный excel-файл. подвисает. исчезает таблица при скроле
 
Добрый день.
У меня ничего не подвисает, но смущает размер файла - хотел посмотреть что внутри, для этого сохранил как xlsm - размер стал 90 284.
Попробуйте пересохранить например в xlsx.
P.S  Пересохранение в любой формат сильно убирает размер. Даже xls на треть худее.
Изменено: Hugo - 24 Апр 2019 19:48:39
Сортировка столбца с смешанными данными, число+текст сортировать как числа.
 
Ну можно ещё чуть подпилить:
Код
=ЕСЛИ(ЕЧИСЛО(1*A:A);1*A:A;ПРАВСИМВ("000000"&A:A;6))
Сортировка столбца с смешанными данными, число+текст сортировать как числа.
 
И чем этот файл отличается от того первого? Я думал может показываете как формулу применил :)
Сортировка столбца с смешанными данными, число+текст сортировать как числа.
 
В допстолбец
Код
=ЕСЛИ(ЕЧИСЛО(1*[@Столбец1]);[@Столбец1];ПРАВСИМВ("000000"&[@Столбец1];6))

и по нему сортировать всю таблицу.
И без примера как оно есть в файле такую формулу не написать… Т.е. она была бы другой.
По названию темы - Сортировка столбца с смешанными данными, число+текст сортировать как числа.
Сортировка столбца с смешанными данными, число+текст сортировать как числа.
 
Я думаю там другие данные.
Ибо у меня по умолчанию сортируется так:
1
2
3
4
5
10К
11К
12К










Поэтому совет - следуйте пожалуйста правилам форума!
Разделить каждую строку из одной ячейки в отдельный столбец
 
Тут на форуме уже много раз пробегала UDF Substring() - можно использовать её, если правильно писать заглавия столбцов:
Код
=ПОДСТАВИТЬ(Substring($B2;СИМВОЛ(10);СТОЛБЕЦ()-2;СТОЛБЕЦ()-2);C1&":";"")

Т.е. извлекаем строку типа
Тип: Автомодель на р/у
заменяем в ней заголовок + двоеточие на ничего.
Изменение имен находящихся в папке файлов на имена, указанные в столбце книги Excel
 
Какое-то сложное решение получается (кодировки, нотепады++, ворды, баты...), можно ведь стандартно:
Код
Sub tt()
    Dim f
    For Each f In [a1].CurrentRegion.Columns(1).Cells
        Name f As f(1, 2)
    Next
End Sub

Но - в этом коде на приведённом выше файле с именами файлы переименовываются так, как прописано - т.е. в каталог где лежит файл с кодом, и без расширения.
Т.е. нужно доработать - или прописать полный путь на листе, или дописывать его в коде - например брать путь и расширение с первого столбца.
И ещё - у команды  Name есть ограничения:
Цитата
Name can move a file across drives, but it can only rename an existing directory or folder when both newpathname and oldpathname are located on the same drive. Name cannot create a new file, directory, or folder.
Изменено: Hugo - 21 Апр 2019 15:09:07
Переименование ярлыков листа, изменение нумерации в ярлыках листов
 
Так если такой лист уже есть - правильно что ругается. Думайте что делать.
Сцепить ячейки, игнорируя пустые.
 
Сцеплять как получается, затем в результате 2 раза заменить ", ," на запятую. Или 3, без файла точно не скажу. Но ошибки не будет, можно хоть 4 раза заменять. Естественно всё в одной формуле.
Изменено: Hugo - 19 Апр 2019 20:51:49
Как правильно обратиться к диапазону из VBA
 
Если код в стандартном модуле - то аналогично работает это:
Код
MsgBox Application.Min(Cells(6, 3), Cells(8, 3), Cells(10, 3))
Преобразование табличных данных в строчные
 
Я сам написал - может так удобнее будет:
Код
Sub tt()
    Dim i&, ii&, x&, r1 As Range, r2 As Range

    On Error Resume Next
    Set r1 = Application.InputBox(Prompt:="Выберите исходную ТАБЛИЦУ", Title:="Диапазон", Type:=8)
    Set r2 = Application.InputBox(Prompt:="Укажите любую ЯЧЕЙКУ куда выгружать РЕЗУЛЬТАТ", Title:="Диапазон", Type:=8)
    On Error GoTo 0
    If r1 Is Nothing Then Exit Sub
    If r2 Is Nothing Then Exit Sub

    Application.ScreenUpdating = False
    For i = 2 To r1.Columns.Count
        For ii = 2 To r1.Rows.Count
            x = x + 1
            r2.Cells(x, 1) = r1.Cells(ii, 1)
            r2.Cells(x, 2) = r1.Cells(1, i)
            r2.Cells(x, 3) = r1.Cells(ii, i)
        Next
    Next
    Application.ScreenUpdating = True
End Sub

Но правда тут без рамок - лень их прописывать, может и не нужны вообще...
[ Закрыто] Скрыт строки по условию во всех листах
 
Работает без ошибок. Если сделать как указал vikttur
Подстановка цифрового кода из таблицы вместо букв
 
:) Что-то я тормознул
Подстановка цифрового кода из таблицы вместо букв
 
Если строго известна длина каждого слова - тогда конечно. А если неизвестна? Писать всем для 99 букв?
Подстановка цифрового кода из таблицы вместо букв
 
Если писать свою UDF - всё легко и просто. Как сделать стандартными функциями - я даже и не знаю...
Создание листов на основании данных из таблицы
 
Да - в словаре будут только уникальные значения/названия, т.е на дубли ничего проверять уже не нужно. Но вот проверить на допустимость названия листа (и файла) нужно бы, хотя такой казус и маловероятен.
Создание листов на основании данных из таблицы
 
Я такое часто делаю без изысков - сперва цикл по данным и в СЛОВАРЬ каждому ГОРОДУ собираю коллекцию номеров его строк.
Затем цикл по словарю - создаём книгу, затем цикл по коллекции строк - копируем в созданную книгу, сохраняем файл.
Да, не особо быстро, но такие объёмы целиком в массив не запихнуть, можно "массивить" частями, но может просто быстро написать код, запустить и сходить попить кофе :)
Изменено: Hugo - 17 Апр 2019 10:19:57
Как ускорить вывод данных из массива на лист
 
Цитата
БМВ написал:
переходите на win10
- была у меня законная Windows 10 Insider Preview - но рухнула без возможности восстановления, уж не знаю что там понаобновлялось... Отформатировал диск и вернулся на семёрку.
Как ускорить вывод данных из массива на лист
 
А я не помню уже когда и где брал свой :)
2 ядра, AMD PhenomII X2 555 3.20 Ггц, виндовый индекс производительности 6,6
Изменено: Hugo - 16 Апр 2019 20:45:35
Как ускорить вывод данных из массива на лист
 
Юра, хороша машинка. У меня 31 сек.
Написание в VBA кода для переноса части и редактирования части содержимого одной ячейки в другие ячейки, Написание в VBA кода для переноса части и редактирования части содержимого одной ячейки в другие ячейки
 
Добрый день.
Вы вероятно не заметили что испортили все номера карт? Нужно как текст их держать в ячейке.
Как вариант - от А2 протянуть вниз
Код
=ЕСЛИ(И(ЕЧИСЛО(B1);ЕЧИСЛО(B2));A1;ПОДСТАВИТЬ(ПСТР(B1;8;22);" ";""))

P.S. понимаю что просили код - но формула проще. Как вариант - записать её написание рекордером в макрос, добавив в конце замену формул на значения.
Изменено: Hugo - 16 Апр 2019 20:35:00
Макрос сохранения последнего видимого листа в отдельный файл "CSV (разделители - запятые)"
 
Цитата
Николай написал:
Что не так?
- как оказалось всё... :(
Макрос сохранения последнего видимого листа в отдельный файл "CSV (разделители - запятые)"
 
Код
Name = ActiveWorkbook.Path & "\" & Otchet_ & Replace(ActiveWorkbook.Name, ".xlsx", ".csv")
Макрос сохранения последнего видимого листа в отдельный файл "CSV (разделители - запятые)"
 
Мой Эксель не знает что такое xlCSVUTF8...
У меня в 2010 работает так:
Код
ActiveWorkbook.SaveAs Filename:=Name, FileFormat:=xlCSV
Изменено: Hugo - 15 Апр 2019 20:05:41
Макрос сохранения последнего видимого листа в отдельный файл "CSV (разделители - запятые)"
 
Вот именно что вроде... Нужно указать не только расширение, но и формат! Помогает рекордер.
VBA. получить Collection из Функции, Функция формирует коллекцию. Необходимо получить результат работы функции (т.е. получить Коллекцию)
 
Работает это:
Код
Option Explicit

Sub test()
    Dim a As New Collection

    Set a = create_collection("Sales", "E")
    MsgBox a.Count

End Sub


Function create_collection(ByVal page As String, ByVal column As String) As Collection  ' формирование массива уникальных элементов

'Объявляем переменные
'myRange - диапазон ячеек, заполненный исходным списком элементов
'myCell - отдельная ячейка диапазона
    Dim myRange As Range, myCell As Range, LastRow As Long, c As New Collection

    Sheets(page).Select
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row

    'присваиваем переменной myRange диапазон ячеек с исходным списком элементов
    Set myRange = Sheets(page).Range(column & "2").Resize(LastRow - 1, 1)

    'заполняем новую коллекцию уникальными элементами
    On Error Resume Next
    For Each myCell In myRange
        c.Add CStr(myCell.Value), CStr(myCell.Value)
    Next myCell
    On Error GoTo 0
    Set create_collection = c
End Function

Но недочётов тут уйма, исправлять некогда...
А по сути вопроса - если бы Ваша функция создавала коллекцию - Вы бы её и получили в подпрограмму (почему под?), так что там всё ОК...
Электронные адреса из столбика перенести в одну ячейку и разделить запятой
 
Lefevr, функция там целиком такая:
Код
Public Function ОБЪЕДИНЕНИЕ(delim As String, ParamArray rng() As Variant)
Dim cll1 As Variant, cll2 As Variant
Dim Res As String
For Each cll1 In rng
For Each cll2 In cll1
If cll2 <> "" Then Res = Res & cll2 & delim
Next cll2
Next cll1
ОБЪЕДИНЕНИЕ = Left(Res, Len(Res) - Len(delim))
End Function

И кстати что немаловажно - первая строка того поста звучит так:
Цитата
Если используете Excel 2019 или Office 365, то можно функцией ОБЪЕДИНИТЬ.
Изменено: Hugo - 9 Апр 2019 20:51:34
переменная в объявлении массив, можно ли как-то вставить в объявление размера фиксированного массива переменную, чтобы не выдавало ошибку?
 
Код
ReDim arr(1 To st, 1 To 3)
Как привести "число сохранено как текст" к тексту, чтобы работал ВПР? изменение формата не помогает
 
Чем так мучиться - не проще ли свою UDF написать и применить? Макросы разрешать совсем не нужно, если код положить в надстройку. Но правда у других работать не будет.
Изменено: Hugo - 8 Апр 2019 20:00:28
По id из столбца выписать все значения в строку, Выписать по id значения из столбца в одну строку
 
Цитата
paseek написал:
Нужно повторяющиеся значения получить в одну строку напротив id с разделителем
Код
=VLOOKUPCOUPLE(A:B;1;A1;2;", ")

Код UDF в копилке
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=2&TID=10&TITLE_SEO=10
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 722 След.
Наверх