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

Страницы: 1 2 3 4 5 След.
Транслировать типы данных из таблицы-образца Power Query M
 
ИНН, конечно, лучше = Text.Type

Починку потерянных начальных нулей делаю потом на Text.PadStart, если 9 или 11 символов в ИНН
Транслировать типы данных из таблицы-образца Power Query M
 
Цитата
написал:
в данном случае - пофиг, но для больших списков и пошустрее
Круть! Регулярно настраиваю в больших системах, как представится — сразу применю — Большое спасибо!
VBA: создать запрос Power query, включенный в группу запросов
 
Коллеги, добрый день,

Для создания/удаления временных наборов запросов хотел бы найти vba-метод создания pq-запроса в составе группы, для последующего удаления всей группы, вместо удаления каждого запроса по отдельности (т.к. состав м.б. разным, а в обработчике много других, постоянных запросов)

У MS есть раздел 'Manage queries (Power Query)' c командами меню, но vba-команды пока не находятся ...

Буду благодарен за помощь    
Транслировать типы данных из таблицы-образца Power Query M
 
PooHkrd, да, большое спасибо - очень помогли - не то слово!   - Но как у Вас это получается, Холмс!

PS: еще, мне кажется, способ Дмитрия тоже можно обернуть в что-то подобное, чтобы столбценезависимым стал ...
Транслировать типы данных из таблицы-образца Power Query M
 
PooHkrd, в Table.Schema сократил табValueType до целевого набора столбцов (в каждом случае будет свой) и добавил игнорирование пропусков столбцов - на основных данных у меня поехало ... тестирую

Код
let    Источник = Excel.CurrentWorkbook(){[Name="Т"]}[Content],
    ListOfTypes = Table.ToRows(
        Table.TransformColumns(
            Table.Schema(Table.SelectColumns(  табValueType , Table.ColumnNames( Источник ), MissingField.Ignore))[[Name],[TypeName]], 
            {{"TypeName", (x)=>Expression.Evaluate(x,#shared), Type.Type}})),
    ChangedType = Table.TransformColumnTypes(Источник,ListOfTypes)
in
    ChangedType

Изменено: Дмитрий Марков - 17.11.2021 17:39:49
Транслировать типы данных из таблицы-образца Power Query M
 
PooHkrd, да, серьезный способ, но на нехватающий столбец ошибкой все-таки реагирует
MissingField.Ignore, как я понимаю, здесь неприменимо
Изменено: Дмитрий Марков - 17.11.2021 17:05:45
Транслировать типы данных из таблицы-образца Power Query M
 
Дмитрий, да, большое спасибо, это почти так, только плюсом, для большей гибкости, я хотел бы иметь возможность пропуска столбцов, чтобы работать со всеми таблицами от общего табValueType , если корректно формулирую свой вопрос

Т.е., в идеале, в табValueType создавать и накапливать все типы данных для всех столбцов, и раздавать типы на любые таблицы внутри структуры запросов
Изменено: Дмитрий Марков - 17.11.2021 16:11:44
Транслировать типы данных из таблицы-образца Power Query M
 
Да, разместил и сократил - спасибо
Транслировать типы данных из таблицы-образца Power Query M
 
Коллеги, здравствуйте!
Хотел бы создать универсальную таблицу-шаблон-накопитель с заданными типами данных для столбцов, чтобы впоследствии транслировать типы данных по наименованиям столбцов одновременно в несколько последующих запросов
(проработку начал из темы Задать для всех столбцов один тип в Power Query)
Код
= Table.TransformColumnTypes(РазвернутыСтолбцы, List.Transform(РазвернутыСтолбцы, Value.Type(табValueType)))
Код вызвал ошибку преобразования значения типа Table в тип List
Возможно ли вообще подобным образом системно транслировать типы данных?
Изменено: Дмитрий Марков - 17.11.2021 13:11:54
Макрос Закомментировать/Раскомментировать все формулы на листе/в диапазоне VBA
 
Уважаемые эксперты, подскажите пож-та два небольших кода для:

– закомментировать все формулы на листе
– раскомментировать формулы в диапазоне
Макрос после первой сработки прекращает реагировать на событие BeforeSave
 
МатросНаЗебре, полетело! Огромное Вам Спасибо!  
Макрос после первой сработки прекращает реагировать на событие BeforeSave
 
МатросНаЗебре, отключил DisplayAlerts, добавил Exit Sub, пока не пошло
Симптом остался – если было сохранение, то BeforeSave больше не срабатывает

Макрос после первой сработки прекращает реагировать на событие BeforeSave
 
После первой сработки макрос прекращает реагировать на событие BeforeSave
Цель: принудительное сохранение файла в заранее определенном формате
Возможно, код не отрабатывает полностью процедуру ... не могу разобраться

Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ActiveWorkbook.ActiveSheet.DisplayPageBreaks = False
Application.EnableCancelKey = xlDisabled
Application.EnableEvents = False
Cancel = True
    
    Dim fName As Variant
    Dim FileFormatValue As Long

    With Application
        fName = .GetSaveAsFilename(InitialFileName:=ActiveWorkbook.Name, FileFilter:=" Excel Binary Workbook (*.xlsb), *.xlsb", FilterIndex:=1, Title:="Save as .xlsb")
    End With

    ' Find the correct FileFormat that matches the choice
    ' in the "Save as type" list.
    Select Case getExtension(fName)
        Case "xlsb": FileFormatValue = 50 'xlExcel12 '50
        Case Else: FileFormatValue = 50
    End Select

    If fName = False Then GoTo NotSaved ' When user selects Cancel.

    On Error Resume Next
    'Exit Sub

Application.DisplayAlerts = False
ActiveWorkbook.SaveAs fName, FileFormat:=FileFormatValue, CreateBackup:=False

'DoEvents
    If Err.Number <> 0 Then
        On Error GoTo 0
        GoTo NotSaved
    Else
        On Error GoTo 0
        'MsgBox "Project successfully saved.", vbInformation ' Exit Sub '
    End If
        
        
Application.EnableCancelKey = xlInterrupt
    Exit Sub '

NotSaved:
    
    'MsgBox "Project Not Saved!", vbExclamation ' Exit Sub '

    ActiveWorkbook.Activate
Application.EnableCancelKey = xlInterrupt
Application.DisplayAlerts = True
Application.EnableEvents = True

End Sub
Изменено: Дмитрий Марков - 25.05.2021 12:40:22
После отработки кода на событие Workbook_BeforeSave книга надолго повисает и в итоге вылетает совсем
 
Михаил, большое спасибо, на выход реагирует отлично  
Как отключить повторное открытие диалога SaveAs при сохранении книги в формате *.xlsb
 
sokol92, большое Вам спасибо за решение – файл наконец-то отпустило)
После отработки кода на событие Workbook_BeforeSave книга надолго повисает и в итоге вылетает совсем
 
Халк, большое спасибо за направление, буду пробовать смежные варианты, хотелось добиться принудительного сохранения в *.xlsb
После отработки кода на событие Workbook_BeforeSave книга надолго повисает и в итоге вылетает совсем
 
Коллеги, здравствуйте,

Проблема с сохранением файла в принудительном формате, после отработки кода на событие Workbook_BeforeSave книга надолго повисает и в итоге вылетает совсем
Причем, при   перезаписи файла кодом, макрос в дальнейшем прекращает срабатывать, а при сохранении в новое имя как раз виснет, часики крутятся, затем вылетает
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.EnableCancelKey = xlDisabled
Application.EnableEvents = False
    Dim fName As Variant
    Dim FileFormatValue As Long

    With Application
        fName = .GetSaveAsFilename(InitialFileName:=ActiveWorkbook.Name, FileFilter:=" Excel Binary Workbook (*.xlsb), *.xlsb", FilterIndex:=1, Title:="Save as .xlsb")
    End With

    ' Find the correct FileFormat that matches the choice
    ' in the "Save as type" list.
    Select Case getExtension(fName)
        Case "xlsb": FileFormatValue = 50 'xlExcel12 '50
        Case Else: FileFormatValue = 50
    End Select

    If fName = False Then GoTo NotSaved ' When user selects Cancel.

    On Error Resume Next
    'Exit Sub

ActiveWorkbook.SaveAs fName, FileFormat:=FileFormatValue, CreateBackup:=False

'DoEvents
    If Err.Number <> 0 Then
        On Error GoTo 0
        GoTo NotSaved
    Else
        On Error GoTo 0
        'MsgBox "Project successfully saved.", vbInformation ' Exit Sub '
    End If
        
        
Application.EnableCancelKey = xlInterrupt
    Exit Sub '

NotSaved:
    
    'MsgBox "Project Not Saved!", vbExclamation ' Exit Sub '

    ActiveWorkbook.Activate
Application.EnableCancelKey = xlInterrupt
Application.EnableEvents = True
End Sub

Буду благодарен за советы, рекомендации
Как отключить повторное открытие диалога SaveAs при сохранении книги в формате *.xlsb
 
МатросНаЗебре, большое Вам спасибо! Сохраняет.
Правда потом висит и падает совсем - думаю, многовато Exit Sub'ов наставлено
Как отключить повторное открытие диалога SaveAs при сохранении книги в формате *.xlsb
 
Коллеги, здравствутйе,

Настраиваю принудительное сохранение в формате *.xlsb, но не могу поймать и отключить момент повторного открытия диалога SaveAs

Module1
Код
Function getExtension(ByVal fName As String) As String
    getExtension = LCase(Right(fName, Len(fName) - InStrRev(fName, ".")))
End Function
ЭтаКнига
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    
    Dim fName As Variant
    Dim FileFormatValue As Long

    With Application
        fName = .GetSaveAsFilename(InitialFileName:=ActiveWorkbook.Name, FileFilter:=" Excel Binary Workbook (*.xlsb), *.xlsb", FilterIndex:=1, Title:="Save as .xlsb")
    End With

    ' Find the correct FileFormat that matches the choice
    ' in the "Save as type" list.
    Select Case getExtension(fName)
        Case "xlsb": FileFormatValue = 50
        Case Else: FileFormatValue = 0
    End Select

    If fName = False Then GoTo NotSaved ' When user selects Cancel.

    On Error Resume Next
    'Exit Sub
    ActiveWorkbook.SaveAs fName, FileFormat:=FileFormatValue, CreateBackup:=False

    If Err.Number <> 0 Then
        On Error GoTo 0
        GoTo NotSaved
    Else
        On Error GoTo 0
        Exit Sub 'MsgBox "Project successfully saved.", vbInformation
    End If
    
    Exit Sub '

NotSaved:    
    Exit Sub 'MsgBox "Project Not Saved!", vbExclamation
End Sub
Поиск дубликатов в КНИГЕ
 
Код
Sub FindDuplicates()

         ' Declare ws as a worksheet object variable.
         Dim ws As Worksheet


Dim Dict As Object, aa As Range, arr()
Set Dict = CreateObject("Scripting.Dictionary")
         
         ' Loop through all of the worksheets in the active workbook.
         For Each ws In Worksheets
For Each aa In ws.Range("H2:I60000") ' <= 2. здесь был жестко прописан Sheets(1). , замененный на ws.
If aa <> "Сводная" Then
  If Len(aa.Value) > 0 Then
    If Not Dict.exists(aa.Value) Then
      Dict.Add aa.Value, 1
    Else
      Dict.Item(aa.Value) = Dict.Item(aa.Value) + 1
    End If
  End If
End If
Next
Next


On Error Resume Next
Set aa = Application.InputBox("Выберите ячейку для вывода результата", , , , , , , 8)
If aa <> "Сводная" Then
If Err.Number > 0 Then Set aa = [AA1]
On Error GoTo 0
If aa.Cells.Count > 1 Then Set aa = Range(Left(aa.Address, InStr(":", aa.Address) - 1))
aa.Resize(Dict.Count) = Application.Transpose(Dict.keys)  ' <= 1. здесь приводилась ошибка пустого словаря
aa.Offset(0, 1).Resize(Dict.Count) = Application.Transpose(Dict.items)
End If

End Sub
Поиск дубликатов в КНИГЕ
 
San Tut, здравствуйте!
В строке 32
VBA: Почему ошибка Run-time error '13': Type mismatch, если в массиве один элемент текст
 
Цитата
Дмитрий(The_Prist) Щербаков написал: Ну вообще все делается иначе...  работаем с массивом и все
Дмитрий, в код очень удачно зашла Ваша конструкция, в основном потому, что на месте 'выворачивает') переменную в массив

Большое спасибо всем-всем, за направление, помощь, и конструктив) Всех благ!  
VBA: Почему ошибка Run-time error '13': Type mismatch, если в массиве один элемент текст
 
Дмитрий(The_Prist) Щербаков, большое спасибо!

Цитата
RAN написал: А при заполнении с листа, при условии, что в диапазоне 1 ячейка, массива не будет
RAN, в том-то и дело, что заполнение происходит с листа, а массив () – всепогодный, если верно понимаю
VBA: Почему ошибка Run-time error '13': Type mismatch, если в массиве один элемент текст
 
V, большое спасибо!
VBA: Почему ошибка Run-time error '13': Type mismatch, если в массиве один элемент текст
 
Цитата
vikttur написал:
Если вложенных циклов много - пора думать об оптимизации.
Но ведь это уже совсем другой уровень! Холмс!
VBA: Почему ошибка Run-time error '13': Type mismatch, если в массиве один элемент текст
 
Дело в том, что у меня там несколько последовательно вложенных друг в друга циклов
(разбивка списка по критерию / разбивка категории на примерно равные части / формирование содержимого нового файла / ...)
и когда категория состоит из единственной части, мне не очень понятно как корректно прописать обход цикла – буду благодарен за помощь

т.е. от количества уровней вложенности голова уже прилично кружится)
VBA: Почему ошибка Run-time error '13': Type mismatch, если в массиве один элемент текст
 
Но как же этого можно избежать? ))
VBA: Почему ошибка Run-time error '13': Type mismatch, если в массиве один элемент текст
 
Здравствуйте, vikttur,

Dim ВыкладкаФайлы() As Variant ? (если я правильно понял)
VBA: Почему ошибка Run-time error '13': Type mismatch, если в массиве один элемент текст
 
Добрый день,

При получении в массив единственного элемента, вход в цикл For each возвращает ошибку Run-time error '13': Type mismatch
Если в массиве два и более элементов, цикл отрабатывает
Код
    Dim ВыкладкаФайлы As Variant
           
Sheets("Генератор").Select
          
lLastRow = Sheets("Генератор").Cells(Rows.Count, 19).End(xlUp).Row
Sheets("Генератор").Range(Cells(1, 19), Cells(lLastRow, 19)).Select
ВыкладкаФайлы = Selection.Value2

For Each Filename In ВыкладкаФайлы ' здесь Run-time error '13': Type mismatch
Debug.Print Filename
Как разбить число в excel на равные части?
 
Игорь! Браво!
Спасибо за отличный сахар!
Страницы: 1 2 3 4 5 След.
Наверх