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

Страницы: 1 2 3 4 След.
Word - открыть PDF проигнорировав диалоговое окно
 
А если по старинке, DisplayAlerts = False перед вставкой и DisplayAlerts = true после?
Изменено: irabel - 31.03.2026 13:16:34
Word - открыть PDF проигнорировав диалоговое окно
 
Поставил галочку "Больше не показывать это сообщение" и
Код
wdSel.InsertFile Filename:=fPath, ConfirmConversions:=False
Больше не показывает
Автовыравнивание по высоте строки
 
vu.vovk, Как вариант, сложить все файлы, которые нужно печатать, в одну папку и запустить такой скрипт vbs:
Код
' Указываем путь к папке с Excel-файлами
folderPath = "C:\Ваша_папка" ' Измените на нужный путь

' Создаем объекты
Set objExcel = CreateObject("Excel.Application")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(folderPath)

' Настройки Excel
objExcel.Visible = False
objExcel.ScreenUpdating = False

' Проходим по всем файлам в папке
For Each objFile In objFolder.Files
    ' Проверяем, является ли файл Excel-файлом
    If LCase(objFSO.GetExtensionName(objFile.Name)) = "xls" Or LCase(objFSO.GetExtensionName(objFile.Name)) = "xlsx" Then
        ' Открываем файл
        Set objWorkbook = objExcel.Workbooks.Open(objFile.Path)
        
        ' Применяем Autofit к активному листу
        On Error Resume Next
        objWorkbook.ActiveSheet.UsedRange.EntireRow.AutoFit
        On Error GoTo 0
        
        ' Печатаем файл
        objWorkbook.PrintOut
        
        ' Закрываем файл без сохранения изменений
        objWorkbook.Close False
    End If
Next

' Закрываем Excel
objExcel.Quit

' Освобождаем объекты
Set objWorkbook = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
Set objExcel = Nothing
Либо второй вариант, сохраните код ниже как скрипт vbs в удобном месте, например на рабочем столе, потом просто перетаскиваете мышью нужные файлы на файл скрипта
Код
' Проверяем, были ли переданы аргументы (файлы)
If WScript.Arguments.Count = 0 Then
    MsgBox "Перетащите Excel-файл(ы) на этот скрипт."
    WScript.Quit
End If

' Создаем объекты Excel и файловой системы
Set objExcel = CreateObject("Excel.Application")
Set objFSO = CreateObject("Scripting.FileSystemObject")

' Настройки Excel
objExcel.Visible = False
objExcel.ScreenUpdating = False

' Обрабатываем каждый переданный файл
For Each strFile In WScript.Arguments
    ' Проверяем, является ли файл Excel-файлом
    If LCase(objFSO.GetExtensionName(strFile)) = "xls" Or LCase(objFSO.GetExtensionName(strFile)) = "xlsx" Then
        ' Открываем файл
        On Error Resume Next
        Set objWorkbook = objExcel.Workbooks.Open(strFile)
        If Err.Number = 0 Then
            ' Применяем Autofit к активному листу
            On Error Resume Next
            objWorkbook.ActiveSheet.UsedRange.EntireRow.AutoFit
            On Error GoTo 0
            
            ' Печатаем файл
            objWorkbook.PrintOut
            
            ' Закрываем файл без сохранения изменений
            objWorkbook.Close False
        Else
            MsgBox "Не удалось открыть файл: " & strFile
        End If
        On Error GoTo 0
    Else
        MsgBox "Файл не является Excel-файлом: " & strFile
    End If
Next

' Закрываем Excel
objExcel.Quit

' Освобождаем объекты
Set objWorkbook = Nothing
Set objFSO = Nothing
Set objExcel = Nothing
Активация листа Sheets.Activate в событии Workbook_BeforePrint, Не получается активировать лист при вызове процедуры с активацией листа из события Workbook_BeforePrint
 
artem2597, в самой процедуре Start делайте активацию листа.  Только непонятно, зачем активировать лист, если все это можно сделать без активации, и так даже будет быстрее работать.
Ломаются файлы .xlsm
 
Viktoriya3675, переустановить офис пробовали?
WEB API или другие способы подключения к PDF Creator 24
 
evgeniygeo, а нельзя закинуть все картинки на один лист Excel и оттуда уже сохранить в один pdf файл?
WEB API или другие способы подключения к PDF Creator 24
 
PDF24 Creator Manual оно?
Точное значение для точки на графике при наведении курсором, Поиск возможности реализации показа значения для любой точки графика во всплывающем окне подсказки
 
tutochkin, ну да, интерполяцию, точно! бес меня попутал))
Точное значение для точки на графике при наведении курсором, Поиск возможности реализации показа значения для любой точки графика во всплывающем окне подсказки
 
Можно и макросом. Я делал подобное, оцифровку спектров, с помощью WinAPI. Но все это слишком муторно. Здесь же график гладкий, проще сделать его аппроксимацию, и по ней определять координаты любой точки на графике с достаточной точностью
Изменено: irabel - 07.02.2026 10:33:43
Ошибка при импорте данных с листа Excel в БД Access, На некоторых компьютерах возникает ошибка при импорте данных
 
Всем ДВС!
В макросе excel прописан код  
Код
Set conn = CreateObject("ADODB.Connection")
BDfile="\\БД\Данные.accdb"
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & BDfile & ";"
Table_Name =1076
' Создание новой таблицы
strSQL = "CREATE TABLE [" & Table_Name & "] ([Компонент] TEXT, [Детектор] TEXT, [Площадь] DOUBLE)"
conn.Execute strSQL
    
    ' Вставка данных из Excel
xlFile = ThisWorkbook.path & "\" & ThisWorkbook.Name
strSQL = "INSERT INTO [" & Table_Name & "] SELECT * FROM [Данные$] IN '" & xlFile & "' [Excel 12.0; Xml; HDR=YES;]"
conn.Execute strSQL
На некоторых компьютерах на последней строке ошибка "Операция не поддерживается для объектов данного типа".
На всех компах Win 10-64, Excell 2016 (32)
С DAO тоже пробовал, ошибка там же и такая же(

Пока сделал костыль на построчный импорт через RecordSet, но время увеличилось на порядок для небольших таблиц (около четырехсот строк), боюсь представить что будет на файлах, где строк за десяток тысяч. На большей части компов где код импорта всего листа работает, импорт даже больших файлов занимает меньше секунды.

Из-за чего может быть ошибка?
Может еще есть способ импорта сразу всего листа?
Всплывающая диаграмма, При наведении (нажатии) на ячейку всплывает диаграмма
 
Цитата
написал:
откуда передаются аргументы в макрос?
С кнопок
Excel не может открыть файл при уже открытых
 
А они там есть?)
Если есть - можно временно их отключить (например переименовать WorkBook_Open на WorkBook_Open_no и проверить как теперь будут открываться эти файлы. Если будут также зависать, значит дело не в них.
Excel не может открыть файл при уже открытых
 
Цитата
написал:
Файлы с расширением xls (старые)
проверьте, в этих файлах могут быть макросы на открытие файла (в модуле ЭтаКнига макрос WorkBook_Open)
Подсчет цветных ячеек в строке без макроса при условном форматировании, Нужен подсчет формулами
 
Цитата
написал:
АВТОФОРМАТИРОВАНИЕМ в зеленый и красный цвет
Если вы про условное форматирование, то можно взять оттуда условие и прописать его в формулу с использованием СЧЕТЕСЛИ
Транспонирование множества горизонтальных таблиц в одну вертикальную
 
Цитата
написал:
Не могу додуматься какую формулу применить, чтобы эти таблицы соединялись в одну, при этом при изменении значений они менялись и в транспонируемой таблице
А зачем все эти движения? Ведите только транспонированную таблицу, а шахматку делаете как сводную таблицу, выбрали скважину- сводная построит по всем месяцам, выбрали месяц - сводная соберет по всем скважинам. Ну и в сводной будет удобно фильтровать.

p.s. Случайно не Усинское месторождение?) Номера скважин похожи.
макрос для открытия выпадающего списка кнопкой, не открывает выпадающий список
 
Цитата
написал:
В примере есть выпадающий список, есть кнопка, есть макрос
В примере нет макросов
Макрос вставляет данные из txt - в виде крякозябр и выделяет его
 
Цитата
написал:
все равно выделяется ячейка А1.
уберите строки
Код
.copy
...
[A1].Select
Изменено: irabel - 25.08.2025 08:56:44
VBA функция, должна разъединять все ячейки на активном листе
 
Цитата
написал:
нужна именно функция
почему именно функция?

Функции не могут изменять форматы ячеек, в т.ч. снимать объединение.
Добавьте этот макрос в личную книгу макросов, запускать горячими клавишами, или добавьте кнопку запуска на панель быстрого доступа.
Извлечение данных, Извлечение данных с сайта в виде таблицы
 
Dmitriy XM, ошибка "Variable not defined" в строке
Код
Set coll = JsonConverter.ParseJson(oHTTP.ResponseText)
Видимо как-то еще нужно подключить JsonConverter
Извлечение изображения с листа (книг) Excel
 
Если распаковать файл как архив, то в папке media будут все изображения в исходном виде.
Или обязательно макрос нужен?
Как выполнить макрос на скрытом листе не переходя на него
 
Цитата
написал:
Чтобы потом выполнить нужный мне макрос
В этом макросе используется ссылка на эту ячейку? ее значение?
Зачем её нужно обязательно выделять?
Как выполнить макрос на скрытом листе не переходя на него
 
Цитата
написал:
то он перейдет на "A101". Но мне нужно выполнить эти действия не переходя на "Лист1"
А зачем переходить на эту ячейку? какой смысл?
Код
Sub Найти_Последнюю_Ячейку()
Dim iLastRow As Long
with sheets("HiddenList") ' Нужное имя впишите сами
    iLastRow = .Cells(Rows.Count, 44).End(xlUp).Row
    debug.print "Значение в последней ячейке " & .Cells(iLastRow + 1, 1).value
end with
End Sub
Изменено: irabel - 04.07.2025 07:54:06
Доработка "экранной лупы" на форме, Необходимо переделать "лупу" так, чтобы в ней отображались метки
 
Доброго времени суток!

На форму загружается рисунок, для которого работает "Экранная лупа"
На поле с рисунком находятся несколько разноцветных меток, и нужно чтобы они тоже отображались в "лупе".

Предполагаю, что это можно сделать через api, при перемещении курсора копировать в память область экрана нужного размера, увеличивать эту область и отображать её в лупе. Но сам сделать такое не могу, в апи не силен.

Может есть еще варианты?
VBA. Медленная работа cells.copy и cells.format, На некоторых компьютерах.
 
Цитата
написал:
чем при прямом копировании.
А прямое копирование разве проходит мимо буфера обмена?


Мои результаты: Excel 2013 (64)
test1: 17,46
test2: 13,71
test3: 0,71

Второй раз:
test1: 30,61
test2: 0,71
test3: 1,17

Третий раз:
test1: 0,48
test2: 0,69
test3: 0,68

Четвертый раз:
test1: 0,5
test2: 1,17
test3: 0,71

В 1м и 2м случае включен журнал буфера обмена, во 3м и 4м- выключен

Тест на рабочем компе (Excel 2016, 32) с антивирусом в параноидальном режиме
включен журнал буфера обмена:
test1: 1,3
test2: 33,36
test3: 3,91

выключен журнал буфера обмена:
test1: 1,56
test2: 32,58
test3: 3,24

включен журнал буфера обмена:
test1: 30,953125
test2: 2,9375
test3: 1,83203125

включен журнал буфера обмена:
test1: 1,09375
test2: 31,96875
test3: 2,01171875

Немного поменял код, очистка перед каждым этапом, результаты копируются в ячейку.
Код
Sub test1()
    Dim n As Integer
    Dim t As Double
    Dim log As String
    Dim calcMode As XlCalculation
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    calcMode = Application.Calculation
    Application.Calculation = xlCalculationManual
    With ActiveSheet
        .Columns(2).Clear
        t = Timer

        For n = 1 To 100
            .Cells(n, 1).Copy .Cells(n, 2)
        Next n

        log = "test1: " & Timer - t
        .Columns(2).Clear
        t = Timer

        For n = 1 To 100
            .Cells(n, 1).Copy
            .Cells(n, 2).PasteSpecial
        Next n

        log = log & vbLf & "test2: " & Timer - t
        .Columns(2).Clear
        t = Timer

        For n = 1 To 100
            .Cells(n, 2) = .Cells(n, 1)
            .Cells(n, 1).Copy
            .Cells(n, 2).PasteSpecial xlPasteFormats
        Next n

        log = log & vbLf & "test3: " & Timer - t
        .Columns(2).Clear
        t = Timer

        For n = 1 To 100
            .Cells(n, 2) = .Cells(n, 1)
            .Cells(n, 2).NumberFormat = "0.000"
        Next n

        log = log & vbLf & "test4: " & Timer - t
        'MsgBox log
        .Cells(1, 8) = log
    End With
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    Application.Calculation = calcMode

End Sub
Изменено: irabel - 24.04.2025 10:53:46
VBA. Медленная работа cells.copy и cells.format, На некоторых компьютерах.
 
Посмотрите на "медленных" компах, не включены ли программы для слежения за буфером обмена (различные переключалки раскладки клавиатуры типа Punto Switcher и т.п., логирования буфера обмена - ClipBoard или встроенная в винду Win+V) - из-за них тоже могут быть тормоза
Работа в одном файле с несколькими книгами
 
Цитата
написал:
Это возможно?
Да, но нужны файлы с примерами данными, откуда и куда передавать.

p.s. зачем так уменьшать шрифт сообщения?
Как поменять ссылки на данные в графиках
 
Алексей Вячеславович,
Код
Public Sub Change()
    Dim pItem As Object, pSeries As Object, i As Long
    If TypeOf Selection Is DrawingObjects Then
        For Each pItem In Selection
            debug.print pItem.Name
            For i = 1 To pItem.Chart.SeriesCollection.Count
                debug.print pItem.Chart.SeriesCollection(i).Formula 
            Next
        Next
    End If
End Sub
ответы смотреть в окне отладчика Immediate  
Изменение названия при создании архива с определенной ячейки.
 
Вместо
Код
Filename = Format(Now, "DD-MM-YYYY-HH-NN") & ".xlsx"
надо, где А1 - нужная ячейка
Код
Filename = Range("A1").value & ".xlsx"
Происходит зависание макроса без возможности выхода
 
поправил ссылку
Происходит зависание макроса без возможности выхода
 
можно сделать прерывание циклов по такому методу и посмотреть

p.s. без примеров файла или хотя бы примеров макросов трудно подсказывать, а телепатов на форуме мало  ;)  
Изменено: irabel - 03.04.2025 06:45:50
Страницы: 1 2 3 4 След.
Наверх