Если мне не изменяет память, то с помощью xslt можно и данные из excel/word 2007+ ввытянуть, и xsd в выходной xml впихнуть. Надо вспомнить где и как, по-моему, делал пподобное в altova mapforce
Если мне не изменяет память, то с помощью xslt можно и данные из excel/word 2007+ ввытянуть, и xsd в выходной xml впихнуть. Надо вспомнить где и как, по-моему, делал пподобное в altova mapforcekrosav4ig
[/vba] и в том месте, где должна отображаться схема прописать [vba]
Код
<xs:element ref="xs:schema"/>
[/vba] это нужно для корректной разметки с использованием этой схемы (для трансформации эти декларации в xsd не нужны). Состряпал для примера проект в altova mapforce. Из проекта сгенерировал xslt шаблон. Входным файлом для трансформации служит xsd файл, путь к excel файлу передается через параметр SourceFilePath, папка для сохранения выходного xml файла передается через параметр DestFolder (по умолчанию=папке из SourceFilePath) и имя выходного xml файла передается через параметр DestFile (по умолчанию=имени файла из SourceFilePath). Текст, передаваемый в параметр должен быть заключен в одинарные кавычки. для трансформации используется бесплатный XSLT процессор ALTOVAXML 2013 после установки нужно добавить папку, в которую он установлен в переменную среды Path непосредственно для трансформации нужны только исходный xslx, xsd схема и xslt шаблон (в данном случае 3 файла) сделал 2 варианта обертки - bat[vba]
[/vba] и в том месте, где должна отображаться схема прописать [vba]
Код
<xs:element ref="xs:schema"/>
[/vba] это нужно для корректной разметки с использованием этой схемы (для трансформации эти декларации в xsd не нужны). Состряпал для примера проект в altova mapforce. Из проекта сгенерировал xslt шаблон. Входным файлом для трансформации служит xsd файл, путь к excel файлу передается через параметр SourceFilePath, папка для сохранения выходного xml файла передается через параметр DestFolder (по умолчанию=папке из SourceFilePath) и имя выходного xml файла передается через параметр DestFile (по умолчанию=имени файла из SourceFilePath). Текст, передаваемый в параметр должен быть заключен в одинарные кавычки. для трансформации используется бесплатный XSLT процессор ALTOVAXML 2013 после установки нужно добавить папку, в которую он установлен в переменную среды Path непосредственно для трансформации нужны только исходный xslx, xsd схема и xslt шаблон (в данном случае 3 файла) сделал 2 варианта обертки - bat[vba]
NotSoEXCELlentUser, может вам из excel подключаться к dbf и забирать данные запросом? Данные>Получить внешние данные>Из других источников>Из мастера подключения данных>Дополнительно>Далее> Microsoft Jet 4.0 OLE DB Provider>Далее выбрать dbf файл, из поля удалить имя файла, оставив только путь папки на вкладке Дополнительно установить галочку Read и снять Share deny none на вкладке Все в поле Extended properrties [vba]
Код
DBASE IV;CharacterSet=65001
[/vba] вместо 65001 свою кодовую страницу
NotSoEXCELlentUser, может вам из excel подключаться к dbf и забирать данные запросом? Данные>Получить внешние данные>Из других источников>Из мастера подключения данных>Дополнительно>Далее> Microsoft Jet 4.0 OLE DB Provider>Далее выбрать dbf файл, из поля удалить имя файла, оставив только путь папки на вкладке Дополнительно установить галочку Read и снять Share deny none на вкладке Все в поле Extended properrties [vba]
Код
DBASE IV;CharacterSet=65001
[/vba] вместо 65001 свою кодовую страницуkrosav4ig
Sub sdf() On Error Resume Next Dim cell As Range, sPath$, sNewPath$, sHref$ sPath = ThisWorkbook.Path & "\" sNewPath = sPath & "Отчет" & Format(Now, "dd.MM.yyyy hh_mm\\") MkDir sNewPath With ActiveSheet.UsedRange.Columns("K") For Each cell In Intersect(.Cells, .Offset(1)).SpecialCells(2, 23).SpecialCells(12).Cells sHref = cell.Hyperlinks(1).Address FileCopy sPath & sHref, sNewPath & Mid(sHref, InStrRev(sHref, "\") + 1) Next End With End Sub
[/vba]
sboy, есть жеж FileCopy [vba]
Код
Sub sdf() On Error Resume Next Dim cell As Range, sPath$, sNewPath$, sHref$ sPath = ThisWorkbook.Path & "\" sNewPath = sPath & "Отчет" & Format(Now, "dd.MM.yyyy hh_mm\\") MkDir sNewPath With ActiveSheet.UsedRange.Columns("K") For Each cell In Intersect(.Cells, .Offset(1)).SpecialCells(2, 23).SpecialCells(12).Cells sHref = cell.Hyperlinks(1).Address FileCopy sPath & sHref, sNewPath & Mid(sHref, InStrRev(sHref, "\") + 1) Next End With End Sub
Beazehuginn, а хде директивы #NAME, #INDEX_LANGUAGE, #CONTENTS_LANGUAGE ? или вы собираетесь подключать к основному файлу через #INCLUDE? Хде закрывашка [/m]?
а Notepad++ показывает, что файл нашпигован нуль-символами через каждый символ
есть не совсем адекватная мысль по поводу трансформации с помощью xslt, но есть сомнения, что это возможно
Beazehuginn, а хде директивы #NAME, #INDEX_LANGUAGE, #CONTENTS_LANGUAGE ? или вы собираетесь подключать к основному файлу через #INCLUDE? Хде закрывашка [/m]?
Здравствуйте. Выделяете строки, жмете на кнопку [vba]
Код
Sub CopyRows() Dim I As Long With Selection.Rows For I = .Count To 1 Step -1 With .Item(I) .Offset(1).Insert xlDown, 0 .AutoFill .Resize(2), 1 .Cells(2, 6) = "Пр.П" End With Next End With End Sub
[/vba]
Здравствуйте. Выделяете строки, жмете на кнопку [vba]
Код
Sub CopyRows() Dim I As Long With Selection.Rows For I = .Count To 1 Step -1 With .Item(I) .Offset(1).Insert xlDown, 0 .AutoFill .Resize(2), 1 .Cells(2, 6) = "Пр.П" End With Next End With End Sub
Sub Удалить_заголовки_и_пустые() Dim Addr$ With ActiveSheet.UsedRange.Columns("A") Addr = "=" & .Resize(1).Offset(.Cells.Count).Address(, , Application.ReferenceStyle, 1) With Intersect(.Cells, .Offset(12)) .Replace "Дата операции", Addr .Replace 1, Addr, xlWhole .Replace Empty, Addr End With End With Evaluate(Addr).DirectDependents.EntireRow.Delete xlUp End Sub
[/vba]
Здравствуйте. [vba]
Код
Sub Удалить_заголовки_и_пустые() Dim Addr$ With ActiveSheet.UsedRange.Columns("A") Addr = "=" & .Resize(1).Offset(.Cells.Count).Address(, , Application.ReferenceStyle, 1) With Intersect(.Cells, .Offset(12)) .Replace "Дата операции", Addr .Replace 1, Addr, xlWhole .Replace Empty, Addr End With End With Evaluate(Addr).DirectDependents.EntireRow.Delete xlUp End Sub
Добрый день. Как-то так, если память не подводит [vba]
Код
Источник = Json.Document(Web.Contents("https://api.rasp.yandex.net/v3.0/schedule/?apikey=хххххххх-хххх-хххх-хххх-хххххххххххх&station=s9610483&" & DateTime.ToText(DateTime.Date(DateTime.LocalNow),"yyyy-MM-dd"))),
[/vba]
Добрый день. Как-то так, если память не подводит [vba]
Код
Источник = Json.Document(Web.Contents("https://api.rasp.yandex.net/v3.0/schedule/?apikey=хххххххх-хххх-хххх-хххх-хххххххххххх&station=s9610483&" & DateTime.ToText(DateTime.Date(DateTime.LocalNow),"yyyy-MM-dd"))),
Function xx$(s1$, s2$) Dim s$: s = s1 + "Ў" + s2 xx = s1 With CreateObject("vbscript.regexp") .Global = True: .Pattern = "(.+)(?=.*Ў(?=.*\1))|Ў.*" If .test(s) Then xx = .Replace(s, "") End With End Function
[/vba]
Вариан udf [vba]
Код
Function xx$(s1$, s2$) Dim s$: s = s1 + "Ў" + s2 xx = s1 With CreateObject("vbscript.regexp") .Global = True: .Pattern = "(.+)(?=.*Ў(?=.*\1))|Ў.*" If .test(s) Then xx = .Replace(s, "") End With End Function
With ActiveSheet.UsedRange fs.WriteText Chr(9) & "[m1][b][c red]<<""" & .Cells(1) & """>>[/c][/b]" & vbCrLf For Each col In .Resize(, .Columns.Count - 1).Columns
Select Case col.Column Case 1: sColor = "green" Case 2: sColor = "dodgerblue" End Select 'col.Column
For Each ar In col.SpecialCells(2, 23).Areas Set c = IIf(ar.Cells.Count = 1, ar, ar.End(xlDown)(1, 1)) If HasChild(c) Then fs.WriteText vbCrLf & """" & c & """" & vbCrLf For Each c1 In Range(c(2, 2), c.End(xlDown).Offset(-1, 1)).SpecialCells(2, 23).Cells fs.WriteText Chr(9) & "[m1][b][c " & IIf(HasChild(c1), sColor, _ "blueviolet") & "]<<""" & c1 & """>>[/c][/b]" & vbCrLf Next c1 End If 'HasChild(c) Next ar, col End With 'ActiveSheet.UsedRange
fs.SaveToFile sFilePath, 2: fs.Close: Set fs = Nothing End Sub Private Function HasChild(r As Range) As Boolean HasChild = IsEmpty(r(2)) And Not IsEmpty(r(2, 2)) End Function
[/vba]
на выходных написал, да как-то выложить забыл, на счет кодировки не уверен
[vba]
Код
Sub ExportDSL() Dim col As Range, ar As Range, c As Range, c1 As Range Dim fs As Object, i&, sColor$, sFilePath$
With ActiveSheet.UsedRange fs.WriteText Chr(9) & "[m1][b][c red]<<""" & .Cells(1) & """>>[/c][/b]" & vbCrLf For Each col In .Resize(, .Columns.Count - 1).Columns
Select Case col.Column Case 1: sColor = "green" Case 2: sColor = "dodgerblue" End Select 'col.Column
For Each ar In col.SpecialCells(2, 23).Areas Set c = IIf(ar.Cells.Count = 1, ar, ar.End(xlDown)(1, 1)) If HasChild(c) Then fs.WriteText vbCrLf & """" & c & """" & vbCrLf For Each c1 In Range(c(2, 2), c.End(xlDown).Offset(-1, 1)).SpecialCells(2, 23).Cells fs.WriteText Chr(9) & "[m1][b][c " & IIf(HasChild(c1), sColor, _ "blueviolet") & "]<<""" & c1 & """>>[/c][/b]" & vbCrLf Next c1 End If 'HasChild(c) Next ar, col End With 'ActiveSheet.UsedRange
fs.SaveToFile sFilePath, 2: fs.Close: Set fs = Nothing End Sub Private Function HasChild(r As Range) As Boolean HasChild = IsEmpty(r(2)) And Not IsEmpty(r(2, 2)) End Function
Попробуйте отключить аппаратное ускорение обработки изображения
Цитата
Запустите любую программу Office. На вкладке Файл выберите пункт Параметры. В диалоговом окне Параметры выберите категорию Дополнительно. В списке доступных параметров, установите флажок в поле Отключить аппаратное ускорение обработки изображения.
Попробуйте отключить аппаратное ускорение обработки изображения
Цитата
Запустите любую программу Office. На вкладке Файл выберите пункт Параметры. В диалоговом окне Параметры выберите категорию Дополнительно. В списке доступных параметров, установите флажок в поле Отключить аппаратное ускорение обработки изображения.