Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 416 След.
Использование окна выбора файла для использования пути к методу QueryTables.Add
 
Диалоговое окно выбора файлов/папки
Код
dim sf
sf = Application.GetOpenFilename("CSV files(*.csv),*.csv", 1, "Выбрать файл CSV", , False)
If VarType(sf) = vbBoolean Then
    Exit Sub
End If
With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & sf, Destination:=Range("$A$1"))
Изменено: Дмитрий(The_Prist) Щербаков - 21.09.2021 08:04:49
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Сохранение элементов VBA-коллекции на лист за один проход., (т.е. без записи каждой отдельной ячейки, а все сразу, оптом)
 
Цитата
Сергей Евдокимов написал:
Как записать оптом всю коллекцию
подключить смекалку. В каждую ячейку - долго, да. Но если предварительно записать в массив - то быстро.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Автоматическая рассылка писем из EXCEL через OUTLOOK, В массив вставляется много отступов
 
Цитата
Татьяна Басова написал:
теперь я добавила в код перенос на новую строку с помощью
и получилось вот так.
значит надо убрать там, где это не нужно. Через If, например. Но без кода никто ничего не подскажет.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Перестал работать макрос range_To_Picture (создание .jpeg из выделенного диапазона)
 
То ли со стеной разговариваю, то ли Вы не читаете. НЕВОЗМОЖНО и оставить параметр и вызывать код через F5 и Alt+F8 без вспомогательных процедур. Ну невозможно, т.к. это невозможно ни в одной версии Excel. И уверен, что и раньше так не работало. Что у Вас там на кнопках никто не знает, но уверен, было не так.
Возможно, была просто другая процедура, которая вызывала эту процедуру без указания параметра и все.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Перестал работать макрос range_To_Picture (создание .jpeg из выделенного диапазона)
 
Цитата
vanya7819 написал:
хотя бы понять в чём причина, что код не запускается даже из самого VBA по нажатию F5
внимательно прочитать то, что я написал выше. Это и есть причина.
Цитата
vanya7819 написал:
Он точно был рабочий и я его мог запускать как с VBA так и кнопкой на ленте
Я бы с радостью в это поверил, но своим глазам доверяю больше. Либо после этого код был изменен(добавлен параметр), либо вызывался не этот код. Вариантов НЕТ.
Изменено: Дмитрий(The_Prist) Щербаков - 20.09.2021 18:01:36
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Перестал работать макрос range_To_Picture (создание .jpeg из выделенного диапазона)
 
А у "не запускается" есть какое-то более подробное описание? Как запускаете-то? Вижу, что там добавили параметр в вызов, а процедуры с параметром не отображаются в списке макросов.
Либо в макрос вносились изменения, суть которых автор не понимал, либо запускалось не вручную.
Изменено: Дмитрий(The_Prist) Щербаков - 20.09.2021 17:39:46
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Макрос сравнения/вставки. Признак сравнения - фраза первого столбеца обоих листов в книге.
 
Цитата
Михаил Иванченков написал:
Ругается на: Subscript out of range
может в активной книге просто нет листа "Разное"? Вы проверили?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Макрос копирующий диапазон в новый лист с сохранением настроек
 
Цитата
Родион Цараков написал:
excel конфликтует выдавая ошибку
ошибка секретная или можно сюда написать, о чем она говорит?
Цитата
Родион Цараков написал:
но не сохраняет размерность
для вставки ширины столбцов есть спец.вставка. Высоту строк так перенести нельзя и придется делать цикл по каждой строке. А удалять макросы еще сложнее. Вот здесь пример того, как это делается и что должно быть выполнено(например, галочка с доверием к проекту VBA): Как удалить макросы в книге?
Поверьте, код, предложенный выше куда компактнее и надежнее.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Макрос копирующий диапазон в новый лист с сохранением настроек
 
Цитата
Родион Цараков написал:
НО, чтобы на конечном файле Отсутствовали все макросы.
а приведенный код это и делает. Закройте сохраненную книгу и откройте заново - ни одного макроса там не будет.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Замена значений null в столбце на определенные числа в pq
 
Без файла сказать ничего нельзя. В null превращается не просто так. Скорее всего у Вас там не числа, а текст, который выглядит как числа.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Поддержка макросов на JavaScript в Excel
 
Цитата
bedvit написал:
В Excel нет редактора кода для Си, от того и все сложности)
однако, если не изменяет память, еще в Excel 97 в определенных релизах(для разработчиков) была возможность сохранить файл с макросами и диалогами как dll, но потом эту возможность убрали насовсем.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
PowerPivot, PowerQuery, PowerBI
 
Цитата
voxik-24 написал:
на версии для Microsoft 365 MSO (16.0.14326.20384), 64-разрядная
точно такая же версия 365, версия PQ 2.96.842.0. И у меня есть и эта функция и пункт в Получить данные -Из файла -из PDF. Попробуйте обновить офис.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Можно ли быть уверенным, что однозначно не будет такого инструмента/фичи, который будет в 2021 и которого не будет в 365?
 
Цитата
Olga H. написал:
Совместное редактирование листа Excel
уже реализовано давно. Через он-лайн(OneDrive) и доступно пользователям, начиная с 2016 Excel.
Цитата
Olga H. написал:
возможность вывода диапазона значений на лист с помощью формулы, вставляемой в ячейку
почему нет? Судя по анонсам, возможность работы с динамическими массивами(если правильно понял написанное), будет как раз реализована в 2021 "из коробки". Сейчас это доступно только в 365.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как получить список имен диапазонов из диспетчера имен из закрытой книги с помощью vba
 
Цитата
apfu написал:
также ничего не произошло
потому что надо запускать когда активна книга с таблицами. Тогда в окне, отображенным по Ctrl+G, будет список.
Цитата
apfu написал:
Можно ли изменить Ваш код так
вообще лучше сразу писать задачу так, как хотите видеть её в итоге, раз в кодах не разбираетесь :) Подкорректировал
Код
Sub GetLO()
    Dim wb As Workbook, sh As Worksheet, lb As ListObject
    Dim sh_res As Worksheet
    Dim sf, af, res(), lr&
    
    af = Application.GetOpenFilename("Excel files(*.xls*),*.xls*", 1, "Выбрать файлы Excel", , True)
    If VarType(af) = vbBoolean Then
        Exit Sub
    End If
    
    Application.ScreenUpdating = 0
    Set sh_res = ActiveWorkbook.Sheets.Add(ActiveWorkbook.Sheets(1))
    ReDim res(1 To 10000, 1 To 4)
    lr = 1
    res(lr, 1) = "Книга"
    res(lr, 2) = "Лист"
    res(lr, 3) = "Имя таблицы"
    res(lr, 4) = "Адрес таблицы"
    For Each sf In af
        Set wb = Application.Workbooks.Open(sf)
        For Each sh In wb.Worksheets
            For Each lb In sh.ListObjects
                lr = lr + 1
                res(lr, 1) = wb.Name
                res(lr, 2) = sh.Name
                res(lr, 3) = lb.Name
                res(lr, 4) = lb.Range.Address(external:=True)
            Next
        Next
        wb.Close False
    Next
    sh_res.Cells(1, 1).Resize(lr, 4).Value = res
    Application.ScreenUpdating = 1
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
как заменить знак # во всех гиперссылках
 
Цитата
Роман Силаев написал:
оставлю тут
тогда и ссылку оставьте на статью, откуда этот код взяли: Как получить адрес гиперссылки из ячейки
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Почему формула массива в макросе записывается одинаково во всех ячейках
 
Цитата
crazysobi написал:
не смогу сделать так, чтобы распространялся результат формулы?
можете. Протянули и записали вместо них значения. Вы же прикладывали в начале код, в котором есть запись значений вместо формул. Я так понимаю, код не Вы изначально писали, поэтому и не понимаете что куда прописать. Примерно так должно быть:
Код
Range("H10").FormulaArray = "=IFERROR(INDEX(КАИС!C17,MATCH(RC[-4]&RC[-3]&RC[-2]&RC[-1],КАИС!C4&КАИС!C5&КАИС!C6&КАИС!C7,0)),""-"")"
Range("H10").AutoFill Destination:=Range("H10:H30")
With Range("H10:H30")
.Calculate
.Value = .Value
End With
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как получить список имен диапазонов из диспетчера имен из закрытой книги с помощью vba
 
Цитата
apfu написал:
вставил в модуль, запустил, ничего не произошло,
а если в редакторе VBE нажать сочетания клавиш Ctrl+G, а потом запустить? :)
По сути код не шибко сложный:
Код
Sub GetLO()
    Dim wb As Workbook, sh As Worksheet, lb As ListObject
    Dim sh_res As Worksheet
    Dim sf$, res(), lr&
    
    sf = Application.GetOpenFilename("Excel files(*.xls*),*.xls*", 1, "Выбрать файл Excel", , False)
    If VarType(sf) = vbBoolean Then
        Exit Sub
    End If
    
    Application.ScreenUpdating = 0
    Set sh_res = ActiveWorkbook.Sheets.Add(ActiveWorkbook.Sheets(1))
    Set wb = Application.Workbooks.Open(sf)
    ReDim res(1 To 10000, 1 To 3)
    lr = 1
    res(lr, 1) = "Лист"
    res(lr, 2) = "Имя таблицы"
    res(lr, 3) = "Адрес таблицы"
    For Each sh In wb.Worksheets
        For Each lb In sh.ListObjects
            lr = lr + 1
            res(lr, 1) = sh.Name
            res(lr, 2) = lb.Name
            res(lr, 3) = lb.Range.Address(external:=True)
        Next
    Next
    sh_res.Cells(1, 1).Resize(lr, 3).Value = res
    wb.Close False
    Application.ScreenUpdating = 1
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Можно ли быть уверенным, что однозначно не будет такого инструмента/фичи, который будет в 2021 и которого не будет в 365?
 
Судя по действиям Microsoft - точно не будет. Максимум плюшек предоставляется по подписке. И функционал 2021 будет взят из того, что уже есть. И даже если произойдет чудо и будет что-то, чего еще нет в 365, то уверен, что далее это все равно будет реализовано в 365. Потому что у Microsoft упор именно на 365, они его активно продвигают и загонять его в угол не станут.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Почему формула массива в макросе записывается одинаково во всех ячейках
 
Цитата
crazysobi написал:
А через макрос формула теряет массив
Тут имеет место быть нехватка знаний в области формул массива и в области донесения нам всей информации.
Вы не указали изначально ни про формулу массива, ни про то, что вписывать её пытаетесь сразу в диапазон, как я понимаю.
Т.е. у Вас что-то вроде:
Код
Range("A1:A20").FormulaArray = "=IFERROR....
А при такой записи Вы указываете Excel-ю записать ОДНУ формулу массива в весь диапазон. Вручную это делается так: выделили весь диапазон, вписали формулу, нажали Ctrl+Shift+Enter. Вот это и повторяется в коде.
Вы же хотите создать формулу в одной ячейке и распространить на остальные - это разные действия. Следовательно, Вам надо делать так:
Код
Range("A1").FormulaArray = "=IFERROR....
Range("A1").AutoFill Destination:=Range("A1:A20")
P.S. название темы: Почему формула массива в макросе записывается одинаково во всех ячейках
Изменено: Дмитрий(The_Prist) Щербаков - 18.09.2021 14:19:46
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Почему формула массива в макросе записывается одинаково во всех ячейках
 
Цитата
crazysobi написал:
Через запись макроса с включенным "Относительные ссылки"
эта кнопка предназначена совершенно для другого: Использование относительных ссылок в макросах
Чтобы формула была с относительными ссылками, надо в ячейку её с относительными записывать. И судя по указанному коду - записалась она именно с относительными ссылками. Выполните макрос и установите в файле стиль отображения ссылок А1(Файл -Параметры -Формулы - галочка Стиль ссылок R1C1(снять))
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Отображение данных ячейке в другой книге
 
Цитата
Julia написал:
Какой код нужно ввести перед
как Вы изъясняетесь тонко :) Может это надо:
Код
Dim wb1 as Workbook, wb2 as Workbook
Set wb1 = ActiveWorkbook
set wb2 = Application.Workbooks.Open ("T:\Книга 2.xlsb")
wb2.Sheets("Лист 2").Range("А2").Value = wb1.Sheets("Лист1").Range("A1").Value
wb2.Close True 'закрываем книгу с сохранением без показа запроса
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Открыть мега тяжёлый файл
 
Цитата
marker_mc написал:
про защиту листа/книги,
давно все есть - еще для xls придумали, а это тот же бинарник. Да, менее удобно, т.к. нужно спец прогу устанавливать. Но взломать не проблема - эти пароли никогда не были предназначены для реальной защиты конфиденциальных данных.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
VBA. Открыть Excel файл с SharePoint не в ReadOnly
 
Мария, тогда пробуйте иные варианты - у метода Open есть и другие параметры, они вроде никем не скрываются. Главное не стесняться посмотреть их(в справке, например). Есть и такой параметр, как игнорировать режим для чтения, если он был установлен для книги:
Код
Workbooks.Open BMdata, Readonly:=false, ignorereadonlyrecommended:=True
Но вполне возможно, потребуется указать еще и пароль.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Открыть только для чтения, Сетевой xlsx файл
 
Как удалить книгу из самой себя
читать с момента, где заканчиваются все коды - там есть гифка, которая наглядно показывает порядок действий.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Открыть мега тяжёлый файл
 
Цитата
Jack Famous написал:
при этом не повлияет на скорость его работы
это не совсем так. Т.к. это бинарный файл, то доступ к нему тоже будет быстрее(открытие, чтение, сохранение), чем к открытому формату вроде xlsx. Другой вопрос, что это не даст гарантий поломки файла. И вот тут ты совершенно прав: восстановить бинарный файл excel-ю сложнее, чем файл открытого формата. Да и при таких объемах вряд ли удобно будет работать даже с бинарным файлом. Да и опять же: проблема автора в другом: ОТКРЫТЬ уже имеющийся файл и получить из него только часть данных. И т.к. он не может его даже открыть, то обсуждать в каком виде ему этот файл хранить бессмысленно :)
Цитата
marker_mc написал:
.xlsb нет программ которые могут взломать от него пароль
а для взлома пароля на xlsx уже есть? Я же правильно понимаю, что речь о пароле на открытие файла, а не на лист, книгу?
Цитата
marker_mc написал:
не разу не сталкивался с несовместимостью
я полагаю, тут речь о той же Power Query - она не любит двоичный формат и часто отказывается с ним работать.
Изменено: Дмитрий(The_Prist) Щербаков - 17.09.2021 13:37:12
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Открыть мега тяжёлый файл
 
Цитата
New написал:
Но! если не знать название нужных для выборки столбцов, то придётся вытягивать все SELECT * FROM
можно по номерам: f1,f2 и т.д. Но! Если знать номера  :D  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Удаление зеленых треугольников из ячеек (пропустить ошибку)
 
Цитата
Владимир Ш. написал:
справа BeforeClose
интересно, что событие выбрано кардинально не то, которое советовал я:
Цитата
Дмитрий(The_Prist) Щербаков написал:
на процедуру открытия(Workbook_Open)
:D  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Открыть поочередно файлы и обновить запросы Power Query, Vba
 
Ну а типа так - это убираете все промежуточные Sub - End Sub и все...Оставляете только самый первый aaa и для последнего.
Код
Sub aaa()
    Dim Wb As Workbook, oc As Object, IsBG_Refresh As Boolean
    Set Wb = Workbooks.Open(Filename:="C:\папка\a.xlsx")
    Set oc = Wb.Connections("Запрос — Sheet1")
    IsBG_Refresh = oc.OLEDBConnection.BackgroundQuery
    oc.OLEDBConnection.BackgroundQuery = False
    oc.Refresh
    oc.OLEDBConnection.BackgroundQuery = IsBG_Refresh
    Wb.Close True

    Set Wb = Workbooks.Open(Filename:="C:\папка\b.xlsx")
    Set oc = Wb.Connections("Запрос — Sheet1")
    IsBG_Refresh = oc.OLEDBConnection.BackgroundQuery
    oc.OLEDBConnection.BackgroundQuery = False
    oc.Refresh
    oc.OLEDBConnection.BackgroundQuery = IsBG_Refresh
    Wb.Close True

    Set Wb = Workbooks.Open(Filename:="C:\папка\c.xlsx")
    Set oc = Wb.Connections("Запрос — Sheet1")
    IsBG_Refresh = oc.OLEDBConnection.BackgroundQuery
    oc.OLEDBConnection.BackgroundQuery = False
    oc.Refresh
    oc.OLEDBConnection.BackgroundQuery = IsBG_Refresh
    Wb.Close True
End Sub
Изменено: Дмитрий(The_Prist) Щербаков - 16.09.2021 18:32:22
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Удаление зеленых треугольников из ячеек (пропустить ошибку)
 
Цитата
Владимир Ш. написал:
чтобы после применения макроса треугольники не отображались при след открытиях файла
В Модуль книги на процедуру открытия(Workbook_Open) прописываете записанную строку и все.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Открыть поочередно файлы и обновить запросы Power Query, Vba
 
Цитата
Михаил Л написал:
Желательно код без циклов
странное пожелание. Ведь цикл можно сделать и по статичному массиву, который можно будет руками добавлять/изменять. Что-то вроде этого можно попробовать:
Код
Sub RefreshFiles()
    Dim sFolder As String, asFiles, sf
    Dim wb As Workbook
    Dim ws As Worksheet, oc As Object, IsBG_Refresh As Boolean
    
    sFolder = ThisWorkbook.Path 'путь к папке с файлами - указать свой
    sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
    Application.ScreenUpdating = False
    asFiles = Array("file1.xlsx", "file2.xlsx", "file3.xlsx")
    For Each sf In asFiles
        Set wb = Application.Workbooks.Open(sFolder & sf)
        For Each oc In wb.Connections
            IsBG_Refresh = oc.OLEDBConnection.BackgroundQuery
            oc.OLEDBConnection.BackgroundQuery = False
            oc.Refresh
            oc.OLEDBConnection.BackgroundQuery = IsBG_Refresh
        Next
        wb.Close True
    Next
    Application.ScreenUpdating = True
End Sub
основу взял отсюда: Собрать данные из защищенных паролем файлов - PowerQuery
Изменено: Дмитрий(The_Prist) Щербаков - 16.09.2021 17:03:45
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 416 След.
Наверх