disub, Марина (Manyasha) просто забыла еще в 1 строке поменять разделитель[vba]
Код
Function строка_наоборот(cell As Range) Dim arr, res$, i& arr = Split(cell, "-")'Вот тут тоже менять разделитель For i = UBound(arr) To 0 Step -1 res = res & arr(i) & "-"'Вот здесь менять разделитель Next i строка_наоборот = Mid(res, 1, Len(res) - 1) End Function
[/vba]
еще 1 вариант UDF [vba]
Код
Function ReverseWords$(s$, Optional delim$ = "-") Dim arr$(), i& arr = Split(StrReverse(s), delim) For i = 0 To UBound(arr) arr(i) = StrReverse(arr(i)) Next ReverseWords = Join(arr, delim) End Function
[/vba]
disub, Марина (Manyasha) просто забыла еще в 1 строке поменять разделитель[vba]
Код
Function строка_наоборот(cell As Range) Dim arr, res$, i& arr = Split(cell, "-")'Вот тут тоже менять разделитель For i = UBound(arr) To 0 Step -1 res = res & arr(i) & "-"'Вот здесь менять разделитель Next i строка_наоборот = Mid(res, 1, Len(res) - 1) End Function
[/vba]
еще 1 вариант UDF [vba]
Код
Function ReverseWords$(s$, Optional delim$ = "-") Dim arr$(), i& arr = Split(StrReverse(s), delim) For i = 0 To UBound(arr) arr(i) = StrReverse(arr(i)) Next ReverseWords = Join(arr, delim) End Function
Lania, тогда остается 2 варианта: 1 переписать определение процедуры 2 воспользоваться макросом
[vba]
Код
Option Explicit
Public Sub ExecStoredProc(dDate As Date) Const strServerName$ = "ServerName", _ strDBName$ = "DBName", _ strUser$ = "User", strPass$ = "Pass" Const adAsyncExecute& = 16, _ adStateOpen& = 1, _ adStateExecuting& = 4 With CreateObject("ADODB.Connection") .Open Join(Array( _ "DRIVER=SQL Server", _ "SERVER=" & strServerName, _ "UID=" & strUser, _ "password=" & strPass, _ "APP=2013 Microsoft Office system", _ "WSID=" & Environ$("computername"), _ "DATABASE=" & strDBName), ";") .Execute "exec МояПроцедура '" & Format(dDate, "yyyy-mm-dd") & "'", , _ adAsyncExecute Do While .State = (adStateOpen Or adStateExecuting) DoEvents Loop .Close End With 'ThisWorkbook.RefreshAll 'обновление всех подключений End Sub
[/vba]
[vba]
Код
Option Explicit
Private Sub CommandButton1_Click() ExecStoredProc [A1] End Sub
[/vba]
в ячейке может быть дата как в числовом формате, так и в текстовом, в текстовом формате дата распознается в форматах "дд.мм.гггг", "д.м.гг" вместо точек может быть пробел, запятая, слэш (/), дефис, так же распознается дата при написании месяца текстом в полной и сокращенной фррме (1 января 16, 1 янв 2016), если не указан год (как в примере) то берется текущий
Lania, тогда остается 2 варианта: 1 переписать определение процедуры 2 воспользоваться макросом
[vba]
Код
Option Explicit
Public Sub ExecStoredProc(dDate As Date) Const strServerName$ = "ServerName", _ strDBName$ = "DBName", _ strUser$ = "User", strPass$ = "Pass" Const adAsyncExecute& = 16, _ adStateOpen& = 1, _ adStateExecuting& = 4 With CreateObject("ADODB.Connection") .Open Join(Array( _ "DRIVER=SQL Server", _ "SERVER=" & strServerName, _ "UID=" & strUser, _ "password=" & strPass, _ "APP=2013 Microsoft Office system", _ "WSID=" & Environ$("computername"), _ "DATABASE=" & strDBName), ";") .Execute "exec МояПроцедура '" & Format(dDate, "yyyy-mm-dd") & "'", , _ adAsyncExecute Do While .State = (adStateOpen Or adStateExecuting) DoEvents Loop .Close End With 'ThisWorkbook.RefreshAll 'обновление всех подключений End Sub
[/vba]
[vba]
Код
Option Explicit
Private Sub CommandButton1_Click() ExecStoredProc [A1] End Sub
[/vba]
в ячейке может быть дата как в числовом формате, так и в текстовом, в текстовом формате дата распознается в форматах "дд.мм.гггг", "д.м.гг" вместо точек может быть пробел, запятая, слэш (/), дефис, так же распознается дата при написании месяца текстом в полной и сокращенной фррме (1 января 16, 1 янв 2016), если не указан год (как в примере) то берется текущийkrosav4ig
мб я чего-то недопонял... в 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]
мб я чего-то недопонял... в 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
ну дык его нужно правильно импортировать, и будет счастье данные>получение внешних данных>из текста>выбираем файл>импорт формат данных: с разделителями, формат файла: 65001 (он должен определиться автоматически) далее галка на точка с запятой>готово
ну дык его нужно правильно импортировать, и будет счастье данные>получение внешних данных>из текста>выбираем файл>импорт формат данных: с разделителями, формат файла: 65001 (он должен определиться автоматически) далее галка на точка с запятой>готовоkrosav4ig
проверяем есть ли в системе утилита 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. Затем нужно в свойствах файла снять галку "только чтение", нажать кнопку Разблокировать, нажать кнопку Применить, вернуть галку "только чтение" и нажать ОК
проверяем есть ли в системе утилита 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. Затем нужно в свойствах файла снять галку "только чтение", нажать кнопку Разблокировать, нажать кнопку Применить, вернуть галку "только чтение" и нажать ОК
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]
[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
не всегда, например Alt+VC - изменение стиля Обычный, в 2007 такой комбинации нет, есть только Alt+ЯЯ показывающая меню с набором стилей upd. хотя нет, есть Alt+ЯЯ+клавиша контекстного меню+И, но все равно 2 лишние клавиши :) upd.upd. диспетчер правил УФ Alt+VE в 2007 Alt+ЯУУУ>Enter
не всегда, например Alt+VC - изменение стиля Обычный, в 2007 такой комбинации нет, есть только Alt+ЯЯ показывающая меню с набором стилей upd. хотя нет, есть Alt+ЯЯ+клавиша контекстного меню+И, но все равно 2 лишние клавиши :) upd.upd. диспетчер правил УФ Alt+VE в 2007 Alt+ЯУУУ>Enterkrosav4ig
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
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
Didrou, какие дату и время нужно сохранять? Дату самого файла (в свойствах файла на вкладке общая) или те, что BuiltInDocumentProperties(11) и BuiltInDocumentProperties(12) (в свойствах файла на вкладке сводка > дополнительно>>), или и то и другое? Номер редакции, имя последнего сохранившего, общее время редактирования сохранять, название приложения которым последний раз сохранялся сохранять нужно?
Didrou, какие дату и время нужно сохранять? Дату самого файла (в свойствах файла на вкладке общая) или те, что BuiltInDocumentProperties(11) и BuiltInDocumentProperties(12) (в свойствах файла на вкладке сводка > дополнительно>>), или и то и другое? Номер редакции, имя последнего сохранившего, общее время редактирования сохранять, название приложения которым последний раз сохранялся сохранять нужно?krosav4ig