Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Записи участника (krosav4ig) - Мир MS Excel

Результаты поиска
krosav4ig Дата: Пятница, 12.02.2016, 00:08 | Сообщение № 1361 | Тема: Пакетное конвертирование doc в docx с сохранением атрибутов
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
в общем, понагородил все подряд ...

[vba]
Код
Option Explicit

Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type

Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" ( _
    ByVal lpFileName As String, _
    ByVal dwDesiredAccess As Long, _
    ByVal dwShareMode As Long, _
    ByVal lpSecurityAttributes As Long, _
    ByVal dwCreationDisposition As Long, _
    ByVal dwFlagsAndAttributes As Long, _
    ByVal hTemplateFile As Long _
) As Long
Private Declare Function GetFileTime Lib "kernel32" ( _
    ByVal hFile As Long, _
    lpCreationTime As FILETIME, _
    lpLastAccessTime As FILETIME, _
    lpLastWriteTime As FILETIME _
) As Long
Private Declare Function SetFileTime Lib "kernel32" ( _
    ByVal hFile As Long, _
    lpCreationTime As FILETIME, _
    lpLastAccessTime As FILETIME, _
    lpLastWriteTime As FILETIME _
) As Long
Private Declare Function GetFileAttributes Lib "kernel32.dll" Alias "GetFileAttributesA" ( _
    ByVal lpFileName As String _
) As Long
Private Declare Function SetFileAttributes Lib "kernel32.dll" Alias "SetFileAttributesA" ( _
    ByVal lpFileName As String, _
    ByVal dwFileAttributes As Long _
) As Long
Private Declare Function CloseHandle Lib "kernel32" ( _
    ByVal hObject As Long _
) As Long

Private Const _
    GENERIC_WRITE& = &H40000000, _
    GENERIC_READ = &H80000000, _
    OPEN_EXISTING& = 3

Private Sub CommandButton1_Click()
    Dim strFolder$
    Dim CreationTime As FILETIME, _
        LastAccessTime As FILETIME, _
        LastWriteTime As FILETIME
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        If .Show Then strFolder = .SelectedItems(1) Else Exit Sub
    End With
    Dim coll As Collection, strFilePath, strNewFilePath$, hFile&, hFileAttr&
    Dim DocProp(1 To 6) As Variant, objTimeZone As Object, zip$, TZOffset#
    Set coll = FilenamesCollection(strFolder, ".doc")
    Application.ScreenUpdating = False
    For Each strFilePath In coll
        'создаем файловый дескриптор, указывающий на исходный файл
        hFile = CreateFile(strFilePath, GENERIC_READ, 0&, 0&, OPEN_EXISTING, 0&, 0&)
        'читаем датувремя создания, открытия, сохранения файла
        GetFileTime hFile, CreationTime, LastAccessTime, LastWriteTime
        hFileAttr = GetFileAttributes(strFilePath)
        'закрываем дескриптор
        CloseHandle hFile
        With Documents.Open(strFilePath)
            strNewFilePath = Left(.FullName, InStrRev(.FullName, ".")) & "docx"
            'этот блок нужен для переноса встроенных свойств файла
            '7-last author,8=revision number,9-application name,11-creation date
            '12-last save time,13-total editing time
            With .BuiltInDocumentProperties
                DocProp(1) = .Item(7): DocProp(2) = .Item(8)
                DocProp(3) = .Item(9): DocProp(4) = .Item(11)
                DocProp(5) = .Item(12): DocProp(6) = .Item(13)
            End With
            .SaveAs strNewFilePath, 12: .Convert: .Save
            .Close: 'Kill strFilePath 'удаление исходного файла
        End With
        'определяем часовой пояс
        With GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
            For Each objTimeZone In .ExecQuery("Select * from Win32_TimeZone")
                TZOffset = objTimeZone.Bias / 1440
            Next
        End With
        'заменяем встроенные свойства скопированного файла
        zip = "%ProgramFiles(x86)%\7-Zip\7z.exe"
        With CreateObject("wscript.shell")
            .Run "%comspec% /c ""cd """ & Environ("tmp") & """&&""" & zip & _
                """ x """ & strNewFilePath & """ docProps\app.xml -y""", 0, 1
            .Run "%comspec% /c ""cd """ & Environ("tmp") & """&&""" & zip & _
                """ x """ & strNewFilePath & """ docProps\core.xml -y""", 0, 1
            With CreateObject("MSXML2.DOMDocument.4.0")
                .async = False: .validateOnParse = False
                .Load Environ("tmp") & "\docProps\core.xml"
                .setProperty "SelectionLanguage", "XPath"
                .setProperty "SelectionNamespaces", _
                    "xmlns:cp='http://schemas.openxmlformats.org/package/2006/metadata/core-properties' " & _
                    "xmlns:dc='http://purl.org/dc/elements/1.1/' " & _
                    "xmlns:dcterms='http://purl.org/dc/terms/' " & _
                    "xmlns:dcmitype='http://purl.org/dc/dcmitype/' " & _
                    "xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'"
                .SelectSingleNode("//cp:lastModifiedBy").Text = DocProp(1)
                .SelectSingleNode("//cp:revision").Text = DocProp(2)
                .SelectSingleNode("//dcterms:created").Text = _
                    Format(DocProp(4) - TZOffset, "yyyy-mm-ddTHH:MM:SSZ")
                .SelectSingleNode("//dcterms:modified").Text = _
                    Format(DocProp(5) - TZOffset, "yyyy-mm-ddTHH:MM:SSZ")
                .Save Environ("tmp") & "\docProps\core.xml"
            End With
            With CreateObject("MSXML2.DOMDocument.3.0")
                .async = False: .validateOnParse = False
                .Load Environ("tmp") & "\docProps\app.xml"
                .SelectSingleNode("//Application").Text = DocProp(3)
                .SelectSingleNode("//TotalTime").Text = DocProp(6)
                .Save Environ("tmp") & "\docProps\app.xml"
            End With
            .Run "%comspec% /c ""cd """ & Environ("tmp") & """&&""" & zip & _
                """ u """ & strNewFilePath & """ docProps\app.xml -y""", 0, 1
            .Run "%comspec% /c ""cd """ & Environ("tmp") & """&&""" & zip & _
                """ u """ & strNewFilePath & """ docProps\core.xml -y""", 0, 1
            Kill Environ("tmp") & "\docProps\*.*"
            RmDir Environ("tmp") & "\docProps"
        End With
        'создаем файловый дескриптор, указывающий на конвертированный файл
        hFile = CreateFile(strNewFilePath, GENERIC_WRITE, 0&, 0&, OPEN_EXISTING, 0&, 0&)
        'заменяем датувремя создания, открытия, сохранения файла
        SetFileTime hFile, CreationTime, LastAccessTime, LastWriteTime
        SetFileAttributes strNewFilePath, hFileAttr
        'закрываем дескриптор
        CloseHandle hFile
    Next
    Application.ScreenUpdating = True
End Sub
[/vba]
К сообщению приложен файл: 7410728.doc (71.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 12.02.2016, 00:08
 
Ответить
Сообщениев общем, понагородил все подряд ...

[vba]
Код
Option Explicit

Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type

Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" ( _
    ByVal lpFileName As String, _
    ByVal dwDesiredAccess As Long, _
    ByVal dwShareMode As Long, _
    ByVal lpSecurityAttributes As Long, _
    ByVal dwCreationDisposition As Long, _
    ByVal dwFlagsAndAttributes As Long, _
    ByVal hTemplateFile As Long _
) As Long
Private Declare Function GetFileTime Lib "kernel32" ( _
    ByVal hFile As Long, _
    lpCreationTime As FILETIME, _
    lpLastAccessTime As FILETIME, _
    lpLastWriteTime As FILETIME _
) As Long
Private Declare Function SetFileTime Lib "kernel32" ( _
    ByVal hFile As Long, _
    lpCreationTime As FILETIME, _
    lpLastAccessTime As FILETIME, _
    lpLastWriteTime As FILETIME _
) As Long
Private Declare Function GetFileAttributes Lib "kernel32.dll" Alias "GetFileAttributesA" ( _
    ByVal lpFileName As String _
) As Long
Private Declare Function SetFileAttributes Lib "kernel32.dll" Alias "SetFileAttributesA" ( _
    ByVal lpFileName As String, _
    ByVal dwFileAttributes As Long _
) As Long
Private Declare Function CloseHandle Lib "kernel32" ( _
    ByVal hObject As Long _
) As Long

Private Const _
    GENERIC_WRITE& = &H40000000, _
    GENERIC_READ = &H80000000, _
    OPEN_EXISTING& = 3

Private Sub CommandButton1_Click()
    Dim strFolder$
    Dim CreationTime As FILETIME, _
        LastAccessTime As FILETIME, _
        LastWriteTime As FILETIME
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        If .Show Then strFolder = .SelectedItems(1) Else Exit Sub
    End With
    Dim coll As Collection, strFilePath, strNewFilePath$, hFile&, hFileAttr&
    Dim DocProp(1 To 6) As Variant, objTimeZone As Object, zip$, TZOffset#
    Set coll = FilenamesCollection(strFolder, ".doc")
    Application.ScreenUpdating = False
    For Each strFilePath In coll
        'создаем файловый дескриптор, указывающий на исходный файл
        hFile = CreateFile(strFilePath, GENERIC_READ, 0&, 0&, OPEN_EXISTING, 0&, 0&)
        'читаем датувремя создания, открытия, сохранения файла
        GetFileTime hFile, CreationTime, LastAccessTime, LastWriteTime
        hFileAttr = GetFileAttributes(strFilePath)
        'закрываем дескриптор
        CloseHandle hFile
        With Documents.Open(strFilePath)
            strNewFilePath = Left(.FullName, InStrRev(.FullName, ".")) & "docx"
            'этот блок нужен для переноса встроенных свойств файла
            '7-last author,8=revision number,9-application name,11-creation date
            '12-last save time,13-total editing time
            With .BuiltInDocumentProperties
                DocProp(1) = .Item(7): DocProp(2) = .Item(8)
                DocProp(3) = .Item(9): DocProp(4) = .Item(11)
                DocProp(5) = .Item(12): DocProp(6) = .Item(13)
            End With
            .SaveAs strNewFilePath, 12: .Convert: .Save
            .Close: 'Kill strFilePath 'удаление исходного файла
        End With
        'определяем часовой пояс
        With GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
            For Each objTimeZone In .ExecQuery("Select * from Win32_TimeZone")
                TZOffset = objTimeZone.Bias / 1440
            Next
        End With
        'заменяем встроенные свойства скопированного файла
        zip = "%ProgramFiles(x86)%\7-Zip\7z.exe"
        With CreateObject("wscript.shell")
            .Run "%comspec% /c ""cd """ & Environ("tmp") & """&&""" & zip & _
                """ x """ & strNewFilePath & """ docProps\app.xml -y""", 0, 1
            .Run "%comspec% /c ""cd """ & Environ("tmp") & """&&""" & zip & _
                """ x """ & strNewFilePath & """ docProps\core.xml -y""", 0, 1
            With CreateObject("MSXML2.DOMDocument.4.0")
                .async = False: .validateOnParse = False
                .Load Environ("tmp") & "\docProps\core.xml"
                .setProperty "SelectionLanguage", "XPath"
                .setProperty "SelectionNamespaces", _
                    "xmlns:cp='http://schemas.openxmlformats.org/package/2006/metadata/core-properties' " & _
                    "xmlns:dc='http://purl.org/dc/elements/1.1/' " & _
                    "xmlns:dcterms='http://purl.org/dc/terms/' " & _
                    "xmlns:dcmitype='http://purl.org/dc/dcmitype/' " & _
                    "xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'"
                .SelectSingleNode("//cp:lastModifiedBy").Text = DocProp(1)
                .SelectSingleNode("//cp:revision").Text = DocProp(2)
                .SelectSingleNode("//dcterms:created").Text = _
                    Format(DocProp(4) - TZOffset, "yyyy-mm-ddTHH:MM:SSZ")
                .SelectSingleNode("//dcterms:modified").Text = _
                    Format(DocProp(5) - TZOffset, "yyyy-mm-ddTHH:MM:SSZ")
                .Save Environ("tmp") & "\docProps\core.xml"
            End With
            With CreateObject("MSXML2.DOMDocument.3.0")
                .async = False: .validateOnParse = False
                .Load Environ("tmp") & "\docProps\app.xml"
                .SelectSingleNode("//Application").Text = DocProp(3)
                .SelectSingleNode("//TotalTime").Text = DocProp(6)
                .Save Environ("tmp") & "\docProps\app.xml"
            End With
            .Run "%comspec% /c ""cd """ & Environ("tmp") & """&&""" & zip & _
                """ u """ & strNewFilePath & """ docProps\app.xml -y""", 0, 1
            .Run "%comspec% /c ""cd """ & Environ("tmp") & """&&""" & zip & _
                """ u """ & strNewFilePath & """ docProps\core.xml -y""", 0, 1
            Kill Environ("tmp") & "\docProps\*.*"
            RmDir Environ("tmp") & "\docProps"
        End With
        'создаем файловый дескриптор, указывающий на конвертированный файл
        hFile = CreateFile(strNewFilePath, GENERIC_WRITE, 0&, 0&, OPEN_EXISTING, 0&, 0&)
        'заменяем датувремя создания, открытия, сохранения файла
        SetFileTime hFile, CreationTime, LastAccessTime, LastWriteTime
        SetFileAttributes strNewFilePath, hFileAttr
        'закрываем дескриптор
        CloseHandle hFile
    Next
    Application.ScreenUpdating = True
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 12.02.2016 в 00:08
krosav4ig Дата: Четверг, 11.02.2016, 17:00 | Сообщение № 1362 | Тема: как выглядит формат ячеек дата-наприме(А1)=400=1год1мес4ден
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
1год1мес4день

точно?
а если к 01.01.2012 прибавить 400 дней , то получится 04.02.2013 (разница - 1г1м3д)
если к 01.02.2012 прибавить 400 дней , то получится 07.03.2013 (разница - 1г1м6д)
если к 01.02.2013 прибавить 400 дней , то получится 08.03.2014 (разница - 1г1м7д)

[moder]А чего это все так бодренько отвечают, когда замечание модератора еще не исправлено? <_< [/moder]
[moder]Тема исправлена, ответы открыты[/moder]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал Manyasha - Четверг, 11.02.2016, 17:08
 
Ответить
Сообщение
1год1мес4день

точно?
а если к 01.01.2012 прибавить 400 дней , то получится 04.02.2013 (разница - 1г1м3д)
если к 01.02.2012 прибавить 400 дней , то получится 07.03.2013 (разница - 1г1м6д)
если к 01.02.2013 прибавить 400 дней , то получится 08.03.2014 (разница - 1г1м7д)

[moder]А чего это все так бодренько отвечают, когда замечание модератора еще не исправлено? <_< [/moder]
[moder]Тема исправлена, ответы открыты[/moder]

Автор - krosav4ig
Дата добавления - 11.02.2016 в 17:00
krosav4ig Дата: Четверг, 11.02.2016, 13:49 | Сообщение № 1363 | Тема: Вставка актуального курса валют.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
Function ЦБР(Optional ByVal Curr$ = "USD", Optional ByVal dDate As Date) As Currency
    Dim date_req$
    With CreateObject("msxml.DOMDocument")
        date_req = "?date_req=" & IIf(dDate, dDate, Date): .async = 0
        If .Load("http://www.cbr.ru/scripts/XML_daily.asp" & date_req) Then
            With .SelectSingleNode("*/Valute[CharCode='" & UCase(Curr) & "']")
                ЦБР = CCur(.ChildNodes(4).Text) / Val(.ChildNodes(2).Text)
            End With
        End If
    End With
End Function
[/vba]
и еще
Функции (UDF) "Курс_Доллара" и "Курс_Евро"
К сообщению приложен файл: 3959274.xlsm (14.6 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Четверг, 11.02.2016, 13:51
 
Ответить
Сообщение[vba]
Код
Function ЦБР(Optional ByVal Curr$ = "USD", Optional ByVal dDate As Date) As Currency
    Dim date_req$
    With CreateObject("msxml.DOMDocument")
        date_req = "?date_req=" & IIf(dDate, dDate, Date): .async = 0
        If .Load("http://www.cbr.ru/scripts/XML_daily.asp" & date_req) Then
            With .SelectSingleNode("*/Valute[CharCode='" & UCase(Curr) & "']")
                ЦБР = CCur(.ChildNodes(4).Text) / Val(.ChildNodes(2).Text)
            End With
        End If
    End With
End Function
[/vba]
и еще
Функции (UDF) "Курс_Доллара" и "Курс_Евро"

Автор - krosav4ig
Дата добавления - 11.02.2016 в 13:49
krosav4ig Дата: Четверг, 11.02.2016, 11:09 | Сообщение № 1364 | Тема: Пакетное конвертирование doc в docx с сохранением атрибутов
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Didrou, какие дату и время нужно сохранять? Дату самого файла (в свойствах файла на вкладке общая) или те, что BuiltInDocumentProperties(11) и BuiltInDocumentProperties(12) (в свойствах файла на вкладке сводка > дополнительно>>), или и то и другое? Номер редакции, имя последнего сохранившего, общее время редактирования сохранять, название приложения которым последний раз сохранялся сохранять нужно?


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Четверг, 11.02.2016, 11:20
 
Ответить
СообщениеDidrou, какие дату и время нужно сохранять? Дату самого файла (в свойствах файла на вкладке общая) или те, что BuiltInDocumentProperties(11) и BuiltInDocumentProperties(12) (в свойствах файла на вкладке сводка > дополнительно>>), или и то и другое? Номер редакции, имя последнего сохранившего, общее время редактирования сохранять, название приложения которым последний раз сохранялся сохранять нужно?

Автор - krosav4ig
Дата добавления - 11.02.2016 в 11:09
krosav4ig Дата: Вторник, 09.02.2016, 22:56 | Сообщение № 1365 | Тема: Можно ли в Excel создать формулу с определением даты?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
или
Код
=ЗАМЕНИТЬ(E4;7;ПОИСК(" ";E4;6)-7;)+C4*D4*7
если дата текстом
К сообщению приложен файл: 9329226.xls (25.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеили
Код
=ЗАМЕНИТЬ(E4;7;ПОИСК(" ";E4;6)-7;)+C4*D4*7
если дата текстом

Автор - krosav4ig
Дата добавления - 09.02.2016 в 22:56
krosav4ig Дата: Вторник, 09.02.2016, 21:10 | Сообщение № 1366 | Тема: Пакетное конвертирование doc в docx с сохранением атрибутов
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
Private Sub CommandButton1_Click()
    Dim coll As Collection, strFolder As String, strFilePath
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        If .Show Then strFolder = .SelectedItems(1)
    End With
    Set coll = FilenamesCollection(strFolder, ".doc")
    Application.ScreenUpdating = False
    For Each strFilePath In coll
        With Documents.Open(strFilePath)
            .SaveAs2 Left(.FullName, InStrRev(.FullName, ".")) & "docx", 12
            .Close
            Kill strFilePath 'удаление исходного файла
        End With
    Next
    Application.ScreenUpdating = True
End Sub
[/vba]

код функции FilenamesCollection взял тут
К сообщению приложен файл: Doc1.doc (54.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение[vba]
Код
Private Sub CommandButton1_Click()
    Dim coll As Collection, strFolder As String, strFilePath
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        If .Show Then strFolder = .SelectedItems(1)
    End With
    Set coll = FilenamesCollection(strFolder, ".doc")
    Application.ScreenUpdating = False
    For Each strFilePath In coll
        With Documents.Open(strFilePath)
            .SaveAs2 Left(.FullName, InStrRev(.FullName, ".")) & "docx", 12
            .Close
            Kill strFilePath 'удаление исходного файла
        End With
    Next
    Application.ScreenUpdating = True
End Sub
[/vba]

код функции FilenamesCollection взял тут

Автор - krosav4ig
Дата добавления - 09.02.2016 в 21:10
krosav4ig Дата: Вторник, 09.02.2016, 20:26 | Сообщение № 1367 | Тема: Можно ли в Excel создать формулу с определением даты?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
можно ли построить формулу, которая рассчитывала бы четвертый столбец?

можно ®
тык


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
можно ли построить формулу, которая рассчитывала бы четвертый столбец?

можно ®
тык

Автор - krosav4ig
Дата добавления - 09.02.2016 в 20:26
krosav4ig Дата: Вторник, 09.02.2016, 15:57 | Сообщение № 1368 | Тема: Сочетания клавиш из более ранних версии Office (для Excel):
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
всё то же самое можно сделать новыми сочетаниями

не всегда, например Alt+VC - изменение стиля Обычный, в 2007 такой комбинации нет, есть только Alt+ЯЯ показывающая меню с набором стилей
upd.
хотя нет, есть Alt+ЯЯ+клавиша контекстного меню+И, но все равно 2 лишние клавиши :)
upd.upd.
диспетчер правил УФ Alt+VE
в 2007 Alt+ЯУУУ>Enter


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 09.02.2016, 16:12
 
Ответить
Сообщение
всё то же самое можно сделать новыми сочетаниями

не всегда, например Alt+VC - изменение стиля Обычный, в 2007 такой комбинации нет, есть только Alt+ЯЯ показывающая меню с набором стилей
upd.
хотя нет, есть Alt+ЯЯ+клавиша контекстного меню+И, но все равно 2 лишние клавиши :)
upd.upd.
диспетчер правил УФ Alt+VE
в 2007 Alt+ЯУУУ>Enter

Автор - krosav4ig
Дата добавления - 09.02.2016 в 15:57
krosav4ig Дата: Вторник, 09.02.2016, 03:00 | Сообщение № 1369 | Тема: Создание массива из данных в столбце
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Почему выдает ошибку?

потому шо [vba]
Код
MsgBox a(ii, 1)
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Почему выдает ошибку?

потому шо [vba]
Код
MsgBox a(ii, 1)
[/vba]

Автор - krosav4ig
Дата добавления - 09.02.2016 в 03:00
krosav4ig Дата: Понедельник, 08.02.2016, 22:42 | Сообщение № 1370 | Тема: Создание массива из данных в столбце
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
^_^ [vba]
Код
Sub Пробирка()
    Dim rng As Range, a As Variant
    Set rng = Range("A1:A100")
    With Application
        a = Evaluate(Join(Array("IF(ISBLANK(", "),"""",ROW(", "))"), rng.Address(, , .ReferenceStyle)))
        a = .Index(rng.Value, .Small(a, Evaluate("ROW(R1:R" & .Count(a) & ")")))
    End With
    MsgBox UBound(a)
    Erase a
    Set rng = Nothing
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 08.02.2016, 22:47
 
Ответить
Сообщение^_^ [vba]
Код
Sub Пробирка()
    Dim rng As Range, a As Variant
    Set rng = Range("A1:A100")
    With Application
        a = Evaluate(Join(Array("IF(ISBLANK(", "),"""",ROW(", "))"), rng.Address(, , .ReferenceStyle)))
        a = .Index(rng.Value, .Small(a, Evaluate("ROW(R1:R" & .Count(a) & ")")))
    End With
    MsgBox UBound(a)
    Erase a
    Set rng = Nothing
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 08.02.2016 в 22:42
krosav4ig Дата: Понедельник, 08.02.2016, 17:45 | Сообщение № 1371 | Тема: Включение и отключение cd привода с помощю Макроса
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
проверяем есть ли в системе утилита devcon (для 64-битной системы devcon64)
в командной строке пишем devcon и жмем enter
если в ответ получаем
Цитата
devcon Usage: devcon [-r] [-m:\\<machine>] <command> [<arg>...]
For more information type: devcon help
, то она установлена, если
Цитата
"devcon" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
, то нужно скачать и поместить в папку %windir%\system32 (для для 64-битной системы %windir%\SysWOW64) файл devcon.exe (для 64-битной системы devcon64.exe) скачать можно из torrent сборки DRP.SU . идем по ссылке под спойлером "Устаревшие версии" выбираем DRP_15.4.12_Full.torrent, при добавлении в очередь нужно снять все галки и выбрать только devcon.exe или devcon64.exe в папке tools. Затем нужно в свойствах файла снять галку "только чтение", нажать кнопку Разблокировать, нажать кнопку Применить, вернуть галку "только чтение" и нажать ОК

на лист вставил переключатель, его код:
[vba]
Код
Private Sub ToggleButton1_Click()
    CreateObject("wscript.shell").Run "devcon" & _
        IIf(Len(Environ("PROGRAMFILES(X86)")), 64, "") & " " & _
        IIf(ToggleButton1.Value, "en", "dis") & "able gencdrom", 0, 1
    ToggleButton1.Caption = "Приводы в" & IIf(ToggleButton1.Value, "", "ы") & "ключены"
End Sub
[/vba]

upd.
Исправил код, заменил файл
К сообщению приложен файл: ToggleCDRom.xls (40.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 08.02.2016, 21:38
 
Ответить
Сообщениепроверяем есть ли в системе утилита devcon (для 64-битной системы devcon64)
в командной строке пишем devcon и жмем enter
если в ответ получаем
Цитата
devcon Usage: devcon [-r] [-m:\\<machine>] <command> [<arg>...]
For more information type: devcon help
, то она установлена, если
Цитата
"devcon" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
, то нужно скачать и поместить в папку %windir%\system32 (для для 64-битной системы %windir%\SysWOW64) файл devcon.exe (для 64-битной системы devcon64.exe) скачать можно из torrent сборки DRP.SU . идем по ссылке под спойлером "Устаревшие версии" выбираем DRP_15.4.12_Full.torrent, при добавлении в очередь нужно снять все галки и выбрать только devcon.exe или devcon64.exe в папке tools. Затем нужно в свойствах файла снять галку "только чтение", нажать кнопку Разблокировать, нажать кнопку Применить, вернуть галку "только чтение" и нажать ОК

на лист вставил переключатель, его код:
[vba]
Код
Private Sub ToggleButton1_Click()
    CreateObject("wscript.shell").Run "devcon" & _
        IIf(Len(Environ("PROGRAMFILES(X86)")), 64, "") & " " & _
        IIf(ToggleButton1.Value, "en", "dis") & "able gencdrom", 0, 1
    ToggleButton1.Caption = "Приводы в" & IIf(ToggleButton1.Value, "", "ы") & "ключены"
End Sub
[/vba]

upd.
Исправил код, заменил файл

Автор - krosav4ig
Дата добавления - 08.02.2016 в 17:45
krosav4ig Дата: Воскресенье, 07.02.2016, 16:00 | Сообщение № 1372 | Тема: Формула сложения в скобках
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[offtop]
А теги за вас кто будет закрывать? Для этого даже есть специальная кнопочка ( / )[/offtop]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение[offtop]
А теги за вас кто будет закрывать? Для этого даже есть специальная кнопочка ( / )[/offtop]

Автор - krosav4ig
Дата добавления - 07.02.2016 в 16:00
krosav4ig Дата: Пятница, 05.02.2016, 22:05 | Сообщение № 1373 | Тема: некорректное отображение киррилицы в CSV файле
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
ну дык его нужно правильно импортировать, и будет счастье
данные>получение внешних данных>из текста>выбираем файл>импорт
формат данных: с разделителями, формат файла: 65001 (он должен определиться автоматически)
далее
галка на точка с запятой>готово


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениену дык его нужно правильно импортировать, и будет счастье
данные>получение внешних данных>из текста>выбираем файл>импорт
формат данных: с разделителями, формат файла: 65001 (он должен определиться автоматически)
далее
галка на точка с запятой>готово

Автор - krosav4ig
Дата добавления - 05.02.2016 в 22:05
krosav4ig Дата: Пятница, 05.02.2016, 19:35 | Сообщение № 1374 | Тема: Печать шапки таблицы на каждой странице через макрос
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
мб я чего-то недопонял...
в thisdocument вставьте такой код
[vba]
Код
Private Sub Document_Open()
    Dim tbl As Table
    For Each tbl In Me.Tables
        tblrRows(1).HeadingFormat = True
    Next
End Sub
[/vba]

или
в модуле класса clsAppWord
[vba]
Код
Public WithEvents App As Word.Application
Private Sub App_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
    Dim tbl As Table
    If Doc Is ThisDocument Then
        For Each tbl In Doc.Tables
            tbl.Rows(1).HeadingFormat = True
        Next
    End If
End Sub
[/vba]
в стандартном модуле
[vba]
Код
Public objAppWord As New clsAppWord
Sub AutoOpen()
    Set objAppWord.App = Parent
End Sub
[/vba]
К сообщению приложен файл: Doc2.docm (22.8 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 05.02.2016, 21:55
 
Ответить
Сообщениемб я чего-то недопонял...
в thisdocument вставьте такой код
[vba]
Код
Private Sub Document_Open()
    Dim tbl As Table
    For Each tbl In Me.Tables
        tblrRows(1).HeadingFormat = True
    Next
End Sub
[/vba]

или
в модуле класса clsAppWord
[vba]
Код
Public WithEvents App As Word.Application
Private Sub App_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
    Dim tbl As Table
    If Doc Is ThisDocument Then
        For Each tbl In Doc.Tables
            tbl.Rows(1).HeadingFormat = True
        Next
    End If
End Sub
[/vba]
в стандартном модуле
[vba]
Код
Public objAppWord As New clsAppWord
Sub AutoOpen()
    Set objAppWord.App = Parent
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 05.02.2016 в 19:35
krosav4ig Дата: Пятница, 05.02.2016, 14:46 | Сообщение № 1375 | Тема: использовать данные из ячейки как параметр для процедуры SQL
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Lania, тогда остается 2 варианта:
1 переписать определение процедуры
2 воспользоваться макросом



в ячейке может быть дата как в числовом формате, так и в текстовом, в текстовом формате дата распознается в форматах "дд.мм.гггг", "д.м.гг" вместо точек может быть пробел, запятая, слэш (/), дефис, так же распознается дата при написании месяца текстом в полной и сокращенной фррме (1 января 16, 1 янв 2016), если не указан год (как в примере) то берется текущий
К сообщению приложен файл: 0023611.xlsm (27.8 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеLania, тогда остается 2 варианта:
1 переписать определение процедуры
2 воспользоваться макросом



в ячейке может быть дата как в числовом формате, так и в текстовом, в текстовом формате дата распознается в форматах "дд.мм.гггг", "д.м.гг" вместо точек может быть пробел, запятая, слэш (/), дефис, так же распознается дата при написании месяца текстом в полной и сокращенной фррме (1 января 16, 1 янв 2016), если не указан год (как в примере) то берется текущий

Автор - krosav4ig
Дата добавления - 05.02.2016 в 14:46
krosav4ig Дата: Среда, 03.02.2016, 21:18 | Сообщение № 1376 | Тема: использовать данные из ячейки как параметр для процедуры SQL
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Lania, почитайте вот эту статью, думаю это именно то, что вам нужно.

если мне не изменяет память,
на 8 шаге текст sql запроса будет таким: exec МояПроцедура ?
на 9 шаге дату нужно вводить в формате гггг-мм-дд


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеLania, почитайте вот эту статью, думаю это именно то, что вам нужно.

если мне не изменяет память,
на 8 шаге текст sql запроса будет таким: exec МояПроцедура ?
на 9 шаге дату нужно вводить в формате гггг-мм-дд

Автор - krosav4ig
Дата добавления - 03.02.2016 в 21:18
krosav4ig Дата: Среда, 03.02.2016, 18:22 | Сообщение № 1377 | Тема: Текстовым значением влиять на числовое в формуле
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
вариант с доп. таблицей (на Листе2)

upd.
не тот файл, перезалил
К сообщению приложен файл: 7427031.xlsx (12.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 03.02.2016, 19:37
 
Ответить
Сообщениевариант с доп. таблицей (на Листе2)

upd.
не тот файл, перезалил

Автор - krosav4ig
Дата добавления - 03.02.2016 в 18:22
krosav4ig Дата: Среда, 03.02.2016, 14:36 | Сообщение № 1378 | Тема: Сравнение элементов массивов и подсчет количества макс. элем
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
а у меня немассивная формула
Код
=СЧЁТ(ИНДЕКС(1/(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(4;СМЕЩ($A$4:$A$6;;$A$3:$AD$3-1;))=$A$4:$AD$6);СТРОКА(AE1);))

или
Код
=СУММПРОИЗВ(Ч(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(4;СМЕЩ($A$4:$A$6;;$A$3:$AD$3-1;))=$A4:$AD4))
К сообщению приложен файл: 6957685.xlsx (9.9 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 03.02.2016, 14:39
 
Ответить
Сообщениеа у меня немассивная формула
Код
=СЧЁТ(ИНДЕКС(1/(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(4;СМЕЩ($A$4:$A$6;;$A$3:$AD$3-1;))=$A$4:$AD$6);СТРОКА(AE1);))

или
Код
=СУММПРОИЗВ(Ч(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(4;СМЕЩ($A$4:$A$6;;$A$3:$AD$3-1;))=$A4:$AD4))

Автор - krosav4ig
Дата добавления - 03.02.2016 в 14:36
krosav4ig Дата: Вторник, 02.02.2016, 16:38 | Сообщение № 1379 | Тема: использовать данные из ячейки как параметр для процедуры SQL
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Lania, у вас MS SQL Server?


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеLania, у вас MS SQL Server?

Автор - krosav4ig
Дата добавления - 02.02.2016 в 16:38
krosav4ig Дата: Вторник, 02.02.2016, 16:27 | Сообщение № 1380 | Тема: является ли 5 знак четным или нет?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
еще вариант :)
Код
ЕЧЁТН(МУМНОЖ(ОТБР(A1;{2;3})*1000;{-1:1}))


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 02.02.2016, 16:29
 
Ответить
Сообщениееще вариант :)
Код
ЕЧЁТН(МУМНОЖ(ОТБР(A1;{2;3})*1000;{-1:1}))

Автор - krosav4ig
Дата добавления - 02.02.2016 в 16:27
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!