Результаты поиска
krosav4ig
Дата: Воскресенье, 06.01.2019, 17:19 |
Сообщение № 601 | Тема: Выборка по условию
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Здравствуйте Код
=ЕСЛИОШИБКА(ИНДЕКС($B$2:$B$325;НАИМЕНЬШИЙ(ЕСЛИ((ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ($C$2:$C$325);ДЕНЬ($C$2:$C$325))-СЕГОДНЯ()>=0)*(ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ($C$2:$C$325);ДЕНЬ($C$2:$C$325))-СЕГОДНЯ()<=30);СТРОКА($B$2:$B$325)-СТРОКА($B$1));A4));"")
Код
=ЕСЛИОШИБКА(ИНДЕКС(B:B;НАИМЕНЬШИЙ(ЕСЛИ((--(ТЕКСТ(C$2:C$325;"[>0]д.М.;")&ГОД(СЕГОДНЯ()))>СЕГОДНЯ())*(C$2:C$325-(ТЕКСТ(СЕГОДНЯ();"д.М.")&ГОД(C$2:C$325))<30);СТРОКА(C$2:C$325));СТРОКА(F1)));"")
Здравствуйте Код
=ЕСЛИОШИБКА(ИНДЕКС($B$2:$B$325;НАИМЕНЬШИЙ(ЕСЛИ((ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ($C$2:$C$325);ДЕНЬ($C$2:$C$325))-СЕГОДНЯ()>=0)*(ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ($C$2:$C$325);ДЕНЬ($C$2:$C$325))-СЕГОДНЯ()<=30);СТРОКА($B$2:$B$325)-СТРОКА($B$1));A4));"")
Код
=ЕСЛИОШИБКА(ИНДЕКС(B:B;НАИМЕНЬШИЙ(ЕСЛИ((--(ТЕКСТ(C$2:C$325;"[>0]д.М.;")&ГОД(СЕГОДНЯ()))>СЕГОДНЯ())*(C$2:C$325-(ТЕКСТ(СЕГОДНЯ();"д.М.")&ГОД(C$2:C$325))<30);СТРОКА(C$2:C$325));СТРОКА(F1)));"")
krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение Здравствуйте Код
=ЕСЛИОШИБКА(ИНДЕКС($B$2:$B$325;НАИМЕНЬШИЙ(ЕСЛИ((ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ($C$2:$C$325);ДЕНЬ($C$2:$C$325))-СЕГОДНЯ()>=0)*(ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ($C$2:$C$325);ДЕНЬ($C$2:$C$325))-СЕГОДНЯ()<=30);СТРОКА($B$2:$B$325)-СТРОКА($B$1));A4));"")
Код
=ЕСЛИОШИБКА(ИНДЕКС(B:B;НАИМЕНЬШИЙ(ЕСЛИ((--(ТЕКСТ(C$2:C$325;"[>0]д.М.;")&ГОД(СЕГОДНЯ()))>СЕГОДНЯ())*(C$2:C$325-(ТЕКСТ(СЕГОДНЯ();"д.М.")&ГОД(C$2:C$325))<30);СТРОКА(C$2:C$325));СТРОКА(F1)));"")
Автор - krosav4ig Дата добавления - 06.01.2019 в 17:19
krosav4ig
Дата: Понедельник, 31.12.2018, 17:53 |
Сообщение № 602 | Тема: С Новым Годом!
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
С наступающим Новым Годом!
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение С наступающим Новым Годом!Автор - krosav4ig Дата добавления - 31.12.2018 в 17:53
krosav4ig
Дата: Воскресенье, 30.12.2018, 17:55 |
Сообщение № 603 | Тема: QueryTables - загрузка данных из файла
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Здравствуйте. [vba]Код
Set qt1 = wsl.QueryTables.Add(Connection:="TEXT;" & "E:\Data\TXT", Destination:=wsl.Cells(1, 1)) With qt1 .FieldNames = False .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = False .RefreshPeriod = 0 .TextFilePromptOnRefresh = True .TextFilePlatform = 866 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = False .TextFileSemicolonDelimiter = True .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 1, 4, 1, 1, 1, 1, 1, 1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False Debug.Print Split(.Connection, ";")(1) End With
[/vba]
Здравствуйте. [vba]Код
Set qt1 = wsl.QueryTables.Add(Connection:="TEXT;" & "E:\Data\TXT", Destination:=wsl.Cells(1, 1)) With qt1 .FieldNames = False .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = False .RefreshPeriod = 0 .TextFilePromptOnRefresh = True .TextFilePlatform = 866 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = False .TextFileSemicolonDelimiter = True .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 1, 4, 1, 1, 1, 1, 1, 1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False Debug.Print Split(.Connection, ";")(1) End With
[/vba] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Воскресенье, 30.12.2018, 17:55
Ответить
Сообщение Здравствуйте. [vba]Код
Set qt1 = wsl.QueryTables.Add(Connection:="TEXT;" & "E:\Data\TXT", Destination:=wsl.Cells(1, 1)) With qt1 .FieldNames = False .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = False .RefreshPeriod = 0 .TextFilePromptOnRefresh = True .TextFilePlatform = 866 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = False .TextFileSemicolonDelimiter = True .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 1, 4, 1, 1, 1, 1, 1, 1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False Debug.Print Split(.Connection, ";")(1) End With
[/vba] Автор - krosav4ig Дата добавления - 30.12.2018 в 17:55
krosav4ig
Дата: Воскресенье, 30.12.2018, 16:50 |
Сообщение № 604 | Тема: проблемы с сортировкой при применении правил
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
еще вариант
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Воскресенье, 30.12.2018, 18:07
Ответить
Сообщение еще вариант Автор - krosav4ig Дата добавления - 30.12.2018 в 16:50
krosav4ig
Дата: Пятница, 28.12.2018, 19:29 |
Сообщение № 605 | Тема: Обработка таблицы excel для перевода в текстовый файл
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Beazehuginn , а хде директивы #NAME, #INDEX_LANGUAGE, #CONTENTS_LANGUAGE ? или вы собираетесь подключать к основному файлу через #INCLUDE? Хде закрывашка [/m]?нормально просматривается Блокнотом
а Notepad++ показывает, что файл нашпигован нуль-символами через каждый символ есть не совсем адекватная мысль по поводу трансформации с помощью xslt, но есть сомнения, что это возможно
Beazehuginn , а хде директивы #NAME, #INDEX_LANGUAGE, #CONTENTS_LANGUAGE ? или вы собираетесь подключать к основному файлу через #INCLUDE? Хде закрывашка [/m]?нормально просматривается Блокнотом
а Notepad++ показывает, что файл нашпигован нуль-символами через каждый символ есть не совсем адекватная мысль по поводу трансформации с помощью xslt, но есть сомнения, что это возможноkrosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение Beazehuginn , а хде директивы #NAME, #INDEX_LANGUAGE, #CONTENTS_LANGUAGE ? или вы собираетесь подключать к основному файлу через #INCLUDE? Хде закрывашка [/m]?нормально просматривается Блокнотом
а Notepad++ показывает, что файл нашпигован нуль-символами через каждый символ есть не совсем адекватная мысль по поводу трансформации с помощью xslt, но есть сомнения, что это возможноАвтор - krosav4ig Дата добавления - 28.12.2018 в 19:29
krosav4ig
Дата: Среда, 26.12.2018, 16:57 |
Сообщение № 606 | Тема: выгрузка файлов в папку по гиперссылкам из Экслель
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
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
[/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
[/vba]krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение 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
[/vba]Автор - krosav4ig Дата добавления - 26.12.2018 в 16:57
krosav4ig
Дата: Вторник, 25.12.2018, 09:26 |
Сообщение № 607 | Тема: Изменение подписей горизонтальной оси графика по условию
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Здравствуйте можно установить числовой формат подписей [vba]Код
[Красный][<1,5]Основной;Основной
[/vba]
Здравствуйте можно установить числовой формат подписей [vba]Код
[Красный][<1,5]Основной;Основной
[/vba] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Вторник, 25.12.2018, 09:26
Ответить
Сообщение Здравствуйте можно установить числовой формат подписей [vba]Код
[Красный][<1,5]Основной;Основной
[/vba] Автор - krosav4ig Дата добавления - 25.12.2018 в 09:26
krosav4ig
Дата: Понедельник, 24.12.2018, 03:47 |
Сообщение № 608 | Тема: Как решить по другому
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение Vladimir_Yan , вот тут все написаноАвтор - krosav4ig Дата добавления - 24.12.2018 в 03:47
krosav4ig
Дата: Понедельник, 24.12.2018, 03:43 |
Сообщение № 609 | Тема: Импорт из FoxPro 9.0
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
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
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Понедельник, 24.12.2018, 03:44
Ответить
Сообщение 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 Дата добавления - 24.12.2018 в 03:43
krosav4ig
Дата: Четверг, 20.12.2018, 23:48 |
Сообщение № 610 | Тема: Добавление схемы в файл xml при импорте данных из Excel
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Для начала нужно провести махинацию с xsd - добавить [vba]Код
<xs:import namespace="http://www.w3.org/2001/XMLSchema"/>
[/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]Код
cd /d . AltovaXML -xslt2 xsl\main.xslt -in xsd\test1.xsd -param SourceFilePath='%~dp0src\test.xlsx' pause
[/vba]и vbs[vba]Код
Dim sFolder sFolder = Replace(WScript.ScriptFullName, WScript.ScriptName, "") With CreateObject("AltovaXML.Application").XSLT2 .InputXMLFileName = sFolder & "xsd\test1.xsd" .XSLFileName = sFolder & "xsl\main.xslt" .AddExternalParameter "SourceFilePath", "'" & sFolder & "src\test.xlsx'" .AddExternalParameter "DestFolder", "'" & sFolder & "'" .AddExternalParameter "DestFIle", "'test1.xml'" .Execute "" End With
[/vba] вместо InputXMLFileName можно использовать InputXMLFromText [vba]Код
Dim sFolder sFolder = Replace(WScript.ScriptFullName, WScript.ScriptName, "") With CreateObject("AltovaXML.Application").XSLT2 .InputXMLFromText = "<xs:schema id='NewDataSet' xmlns='' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:msdata='urn:schemas-microsoft-com:xml-msdata'>" & vbCrLf & _ "<xs:element name='NewDataSet' msdata:IsDataSet='true' msdata:MainDataTable='OrderHeader' msdata:UseCurrentLocale='true'>" & vbCrLf & _ "<xs:complexType>" & vbCrLf & _ "<xs:choice minOccurs='0' maxOccurs='unbounded'>" & vbCrLf & _ "<xs:element name='OrderHeader'>" & vbCrLf & _ "<xs:complexType>" & vbCrLf & _ "<xs:sequence>" & vbCrLf & _ "<xs:element name='Id' type='xs:string' minOccurs='0' />" & vbCrLf & _ "<xs:element name='Cl' type='xs:string' minOccurs='0' />" & vbCrLf & _ "</xs:sequence>" & vbCrLf & _ "</xs:complexType>" & vbCrLf & _ "</xs:element>" & vbCrLf & _ "</xs:choice>" & vbCrLf & _ "</xs:complexType>" & vbCrLf & _ "</xs:element>" & vbCrLf & _ "</xs:schema>" .XSLFileName = sFolder & "xsl\main.xslt" .AddExternalParameter "SourceFilePath", "'" & sFolder & "src\test.xlsx'" .AddExternalParameter "DestFolder", "'" & sFolder & "'" .AddExternalParameter "DestFIle", "'test1.xml'" .Execute "" End With
[/vba] для раннего связывания в vba в папке с установленном ALTOVAXML есть файл AltovaXMLLib.tlb
Для начала нужно провести махинацию с xsd - добавить [vba]Код
<xs:import namespace="http://www.w3.org/2001/XMLSchema"/>
[/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]Код
cd /d . AltovaXML -xslt2 xsl\main.xslt -in xsd\test1.xsd -param SourceFilePath='%~dp0src\test.xlsx' pause
[/vba]и vbs[vba]Код
Dim sFolder sFolder = Replace(WScript.ScriptFullName, WScript.ScriptName, "") With CreateObject("AltovaXML.Application").XSLT2 .InputXMLFileName = sFolder & "xsd\test1.xsd" .XSLFileName = sFolder & "xsl\main.xslt" .AddExternalParameter "SourceFilePath", "'" & sFolder & "src\test.xlsx'" .AddExternalParameter "DestFolder", "'" & sFolder & "'" .AddExternalParameter "DestFIle", "'test1.xml'" .Execute "" End With
[/vba] вместо InputXMLFileName можно использовать InputXMLFromText [vba]Код
Dim sFolder sFolder = Replace(WScript.ScriptFullName, WScript.ScriptName, "") With CreateObject("AltovaXML.Application").XSLT2 .InputXMLFromText = "<xs:schema id='NewDataSet' xmlns='' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:msdata='urn:schemas-microsoft-com:xml-msdata'>" & vbCrLf & _ "<xs:element name='NewDataSet' msdata:IsDataSet='true' msdata:MainDataTable='OrderHeader' msdata:UseCurrentLocale='true'>" & vbCrLf & _ "<xs:complexType>" & vbCrLf & _ "<xs:choice minOccurs='0' maxOccurs='unbounded'>" & vbCrLf & _ "<xs:element name='OrderHeader'>" & vbCrLf & _ "<xs:complexType>" & vbCrLf & _ "<xs:sequence>" & vbCrLf & _ "<xs:element name='Id' type='xs:string' minOccurs='0' />" & vbCrLf & _ "<xs:element name='Cl' type='xs:string' minOccurs='0' />" & vbCrLf & _ "</xs:sequence>" & vbCrLf & _ "</xs:complexType>" & vbCrLf & _ "</xs:element>" & vbCrLf & _ "</xs:choice>" & vbCrLf & _ "</xs:complexType>" & vbCrLf & _ "</xs:element>" & vbCrLf & _ "</xs:schema>" .XSLFileName = sFolder & "xsl\main.xslt" .AddExternalParameter "SourceFilePath", "'" & sFolder & "src\test.xlsx'" .AddExternalParameter "DestFolder", "'" & sFolder & "'" .AddExternalParameter "DestFIle", "'test1.xml'" .Execute "" End With
[/vba] для раннего связывания в vba в папке с установленном ALTOVAXML есть файл AltovaXMLLib.tlb krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Пятница, 21.12.2018, 00:16
Ответить
Сообщение Для начала нужно провести махинацию с xsd - добавить [vba]Код
<xs:import namespace="http://www.w3.org/2001/XMLSchema"/>
[/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]Код
cd /d . AltovaXML -xslt2 xsl\main.xslt -in xsd\test1.xsd -param SourceFilePath='%~dp0src\test.xlsx' pause
[/vba]и vbs[vba]Код
Dim sFolder sFolder = Replace(WScript.ScriptFullName, WScript.ScriptName, "") With CreateObject("AltovaXML.Application").XSLT2 .InputXMLFileName = sFolder & "xsd\test1.xsd" .XSLFileName = sFolder & "xsl\main.xslt" .AddExternalParameter "SourceFilePath", "'" & sFolder & "src\test.xlsx'" .AddExternalParameter "DestFolder", "'" & sFolder & "'" .AddExternalParameter "DestFIle", "'test1.xml'" .Execute "" End With
[/vba] вместо InputXMLFileName можно использовать InputXMLFromText [vba]Код
Dim sFolder sFolder = Replace(WScript.ScriptFullName, WScript.ScriptName, "") With CreateObject("AltovaXML.Application").XSLT2 .InputXMLFromText = "<xs:schema id='NewDataSet' xmlns='' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:msdata='urn:schemas-microsoft-com:xml-msdata'>" & vbCrLf & _ "<xs:element name='NewDataSet' msdata:IsDataSet='true' msdata:MainDataTable='OrderHeader' msdata:UseCurrentLocale='true'>" & vbCrLf & _ "<xs:complexType>" & vbCrLf & _ "<xs:choice minOccurs='0' maxOccurs='unbounded'>" & vbCrLf & _ "<xs:element name='OrderHeader'>" & vbCrLf & _ "<xs:complexType>" & vbCrLf & _ "<xs:sequence>" & vbCrLf & _ "<xs:element name='Id' type='xs:string' minOccurs='0' />" & vbCrLf & _ "<xs:element name='Cl' type='xs:string' minOccurs='0' />" & vbCrLf & _ "</xs:sequence>" & vbCrLf & _ "</xs:complexType>" & vbCrLf & _ "</xs:element>" & vbCrLf & _ "</xs:choice>" & vbCrLf & _ "</xs:complexType>" & vbCrLf & _ "</xs:element>" & vbCrLf & _ "</xs:schema>" .XSLFileName = sFolder & "xsl\main.xslt" .AddExternalParameter "SourceFilePath", "'" & sFolder & "src\test.xlsx'" .AddExternalParameter "DestFolder", "'" & sFolder & "'" .AddExternalParameter "DestFIle", "'test1.xml'" .Execute "" End With
[/vba] для раннего связывания в vba в папке с установленном ALTOVAXML есть файл AltovaXMLLib.tlb Автор - krosav4ig Дата добавления - 20.12.2018 в 23:48
krosav4ig
Дата: Среда, 19.12.2018, 23:54 |
Сообщение № 611 | Тема: Добавление схемы в файл xml при импорте данных из Excel
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Вспомнить-то вспомнилось, но чтоб пример сделать все времени не хватает, думаю завтро вечерком дойдут до этого руки
Вспомнить-то вспомнилось, но чтоб пример сделать все времени не хватает, думаю завтро вечерком дойдут до этого руки krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение Вспомнить-то вспомнилось, но чтоб пример сделать все времени не хватает, думаю завтро вечерком дойдут до этого руки Автор - krosav4ig Дата добавления - 19.12.2018 в 23:54
krosav4ig
Дата: Вторник, 18.12.2018, 10:29 |
Сообщение № 612 | Тема: Добавление схемы в файл xml при импорте данных из Excel
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Если мне не изменяет память, то с помощью xslt можно и данные из excel/word 2007+ ввытянуть, и xsd в выходной xml впихнуть. Надо вспомнить где и как, по-моему, делал пподобное в altova mapforce
Если мне не изменяет память, то с помощью xslt можно и данные из excel/word 2007+ ввытянуть, и xsd в выходной xml впихнуть. Надо вспомнить где и как, по-моему, делал пподобное в altova mapforce krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Вторник, 18.12.2018, 10:32
Ответить
Сообщение Если мне не изменяет память, то с помощью xslt можно и данные из excel/word 2007+ ввытянуть, и xsd в выходной xml впихнуть. Надо вспомнить где и как, по-моему, делал пподобное в altova mapforce Автор - krosav4ig Дата добавления - 18.12.2018 в 10:29
krosav4ig
Дата: Четверг, 13.12.2018, 15:01 |
Сообщение № 613 | Тема: Рассчитать конец работы с учетом праздников (дата, время)
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
dude , а если в список праздников добавить 3.12.2018?
dude , а если в список праздников добавить 3.12.2018?krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение dude , а если в список праздников добавить 3.12.2018?Автор - krosav4ig Дата добавления - 13.12.2018 в 15:01
krosav4ig
Дата: Четверг, 13.12.2018, 11:32 |
Сообщение № 614 | Тема: Рассчитать конец работы с учетом праздников (дата, время)
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
krosav4ig
Дата: Четверг, 13.12.2018, 03:43 |
Сообщение № 615 | Тема: Рассчитать конец работы с учетом праздников (дата, время)
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
за место того, чтобы получилось 14 часов 10 минут, получается 15 часов 10 минут.
исправил, в ячейкеКод
=ЕСЛИ(BB<0;AA+D3+((ЧАС(AA+D3)>12)-(ЧАС(AA)>13))/24;РАБДЕНЬ(AA;1+ОТБР(BB/"8:");ПР)+"9:"+ОСТАТ(BB;"8:")+(ОСТАТ(BB;"8:")>4/24)/24)
работы продолжается вечером до половины 7-ого.
тоже, вроде, само собой отпало (если нет - покажите в файле)
за место того, чтобы получилось 14 часов 10 минут, получается 15 часов 10 минут.
исправил, в ячейкеКод
=ЕСЛИ(BB<0;AA+D3+((ЧАС(AA+D3)>12)-(ЧАС(AA)>13))/24;РАБДЕНЬ(AA;1+ОТБР(BB/"8:");ПР)+"9:"+ОСТАТ(BB;"8:")+(ОСТАТ(BB;"8:")>4/24)/24)
работы продолжается вечером до половины 7-ого.
тоже, вроде, само собой отпало (если нет - покажите в файле)krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Четверг, 13.12.2018, 11:26
Ответить
Сообщение за место того, чтобы получилось 14 часов 10 минут, получается 15 часов 10 минут.
исправил, в ячейкеКод
=ЕСЛИ(BB<0;AA+D3+((ЧАС(AA+D3)>12)-(ЧАС(AA)>13))/24;РАБДЕНЬ(AA;1+ОТБР(BB/"8:");ПР)+"9:"+ОСТАТ(BB;"8:")+(ОСТАТ(BB;"8:")>4/24)/24)
работы продолжается вечером до половины 7-ого.
тоже, вроде, само собой отпало (если нет - покажите в файле)Автор - krosav4ig Дата добавления - 13.12.2018 в 03:43
krosav4ig
Дата: Четверг, 13.12.2018, 00:04 |
Сообщение № 616 | Тема: Рассчитать конец работы с учетом праздников (дата, время)
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Немассивная монстроформула (в диспетчере имен)Код
=ЕСЛИ(BB<0;AA+D3+(ЧАС(AA+D3)>12)/24;РАБДЕНЬ(AA;1+ОТБР(BB/"8:");ПР)+"9:"+ОСТАТ(BB;"8:")+(ОСТАТ(BB;"8:")>4/24)/24)
[vba]Код
AA =ЕСЛИ(РАБДЕНЬ(!E3-1;1;ПР)>!E3;РАБДЕНЬ(!E3;1;ПР)+"9:";!E3)
[/vba] [vba]Код
BB =!D3-"18:"+ОСТАТ(AA;1)+(ЧАС(AA)<14)/24
[/vba] [vba][/vba]
Немассивная монстроформула (в диспетчере имен)Код
=ЕСЛИ(BB<0;AA+D3+(ЧАС(AA+D3)>12)/24;РАБДЕНЬ(AA;1+ОТБР(BB/"8:");ПР)+"9:"+ОСТАТ(BB;"8:")+(ОСТАТ(BB;"8:")>4/24)/24)
[vba]Код
AA =ЕСЛИ(РАБДЕНЬ(!E3-1;1;ПР)>!E3;РАБДЕНЬ(!E3;1;ПР)+"9:";!E3)
[/vba] [vba]Код
BB =!D3-"18:"+ОСТАТ(AA;1)+(ЧАС(AA)<14)/24
[/vba] [vba][/vba] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Четверг, 13.12.2018, 00:06
Ответить
Сообщение Немассивная монстроформула (в диспетчере имен)Код
=ЕСЛИ(BB<0;AA+D3+(ЧАС(AA+D3)>12)/24;РАБДЕНЬ(AA;1+ОТБР(BB/"8:");ПР)+"9:"+ОСТАТ(BB;"8:")+(ОСТАТ(BB;"8:")>4/24)/24)
[vba]Код
AA =ЕСЛИ(РАБДЕНЬ(!E3-1;1;ПР)>!E3;РАБДЕНЬ(!E3;1;ПР)+"9:";!E3)
[/vba] [vba]Код
BB =!D3-"18:"+ОСТАТ(AA;1)+(ЧАС(AA)<14)/24
[/vba] [vba][/vba] Автор - krosav4ig Дата добавления - 13.12.2018 в 00:04
krosav4ig
Дата: Среда, 12.12.2018, 17:10 |
Сообщение № 617 | Тема: Принудительное обновление Importxml
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Я тут немного поизвращался над кодом [vba]Код
function RefreshImports() { var s=SpreadsheetApp, e=s.getUi(), t=e.prompt("","Укажите Spreadsheet id",e.ButtonSet.OK_CANCEL); if(t.getSelectedButton()==e.Button.OK) { var r=t.getResponseText(), n=LockService.getScriptLock(); n.tryLock(5e3) && (SpreadsheetApp.openById(r).getSheets().forEach(function(t){ var r=/.*[^a-z0-9]import(?:xml|data|feed|html|range)\(.*/gi, n=[t.getDataRange()].map(function(e){ return {r:e.getRow(),c:e.getColumn(),f:e.getFormulas()} })[0], e = [].concat.apply([],n.f.map(function(e,r){ return e.map(function(e,t){ return {f:e,r:r+n.c,c:t+n.r}}) })).filter(function(e){return -1!==e.f.search(r)}); e.forEach(function(e){t.getRange(e.r,e.c).setFormula("")}); Utilities.sleep(5e3); e.forEach(function(e){t.getRange(e.r,e.c).setFormula(e.f)}) }),s.flush(),n.releaseLock()) } }
[/vba]
Я тут немного поизвращался над кодом [vba]Код
function RefreshImports() { var s=SpreadsheetApp, e=s.getUi(), t=e.prompt("","Укажите Spreadsheet id",e.ButtonSet.OK_CANCEL); if(t.getSelectedButton()==e.Button.OK) { var r=t.getResponseText(), n=LockService.getScriptLock(); n.tryLock(5e3) && (SpreadsheetApp.openById(r).getSheets().forEach(function(t){ var r=/.*[^a-z0-9]import(?:xml|data|feed|html|range)\(.*/gi, n=[t.getDataRange()].map(function(e){ return {r:e.getRow(),c:e.getColumn(),f:e.getFormulas()} })[0], e = [].concat.apply([],n.f.map(function(e,r){ return e.map(function(e,t){ return {f:e,r:r+n.c,c:t+n.r}}) })).filter(function(e){return -1!==e.f.search(r)}); e.forEach(function(e){t.getRange(e.r,e.c).setFormula("")}); Utilities.sleep(5e3); e.forEach(function(e){t.getRange(e.r,e.c).setFormula(e.f)}) }),s.flush(),n.releaseLock()) } }
[/vba] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig - Среда, 12.12.2018, 19:37
Ответить
Сообщение Я тут немного поизвращался над кодом [vba]Код
function RefreshImports() { var s=SpreadsheetApp, e=s.getUi(), t=e.prompt("","Укажите Spreadsheet id",e.ButtonSet.OK_CANCEL); if(t.getSelectedButton()==e.Button.OK) { var r=t.getResponseText(), n=LockService.getScriptLock(); n.tryLock(5e3) && (SpreadsheetApp.openById(r).getSheets().forEach(function(t){ var r=/.*[^a-z0-9]import(?:xml|data|feed|html|range)\(.*/gi, n=[t.getDataRange()].map(function(e){ return {r:e.getRow(),c:e.getColumn(),f:e.getFormulas()} })[0], e = [].concat.apply([],n.f.map(function(e,r){ return e.map(function(e,t){ return {f:e,r:r+n.c,c:t+n.r}}) })).filter(function(e){return -1!==e.f.search(r)}); e.forEach(function(e){t.getRange(e.r,e.c).setFormula("")}); Utilities.sleep(5e3); e.forEach(function(e){t.getRange(e.r,e.c).setFormula(e.f)}) }),s.flush(),n.releaseLock()) } }
[/vba] Автор - krosav4ig Дата добавления - 12.12.2018 в 17:10
krosav4ig
Дата: Понедельник, 10.12.2018, 23:02 |
Сообщение № 618 | Тема: Подсчет количества одинаковых ячеек
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
Здравствуйте Добавляем заголовок столбца и строим сводную
Здравствуйте Добавляем заголовок столбца и строим сводную krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение Здравствуйте Добавляем заголовок столбца и строим сводную Автор - krosav4ig Дата добавления - 10.12.2018 в 23:02
krosav4ig
Дата: Воскресенье, 09.12.2018, 02:37 |
Сообщение № 619 | Тема: Отправка письма когда значения в одной ячейке выше чем в дру
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
ТАМИК , вы бы хоть табличку показали
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение ТАМИК , вы бы хоть табличку показалиАвтор - krosav4ig Дата добавления - 09.12.2018 в 02:37
krosav4ig
Дата: Суббота, 08.12.2018, 17:32 |
Сообщение № 620 | Тема: Как добавить кнопку - в контекстное меню
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация:
997
±
Замечаний:
0% ±
Excel 2007,2010,2013
[vba]Код
Sub Remove_() On Error Resume Next With CommandBars("Text") Do .FindControl(, 1).Delete Loop Until Err.Number End With End Sub
[/vba]
[vba]Код
Sub Remove_() On Error Resume Next With CommandBars("Text") Do .FindControl(, 1).Delete Loop Until Err.Number End With End Sub
[/vba] krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Ответить
Сообщение [vba]Код
Sub Remove_() On Error Resume Next With CommandBars("Text") Do .FindControl(, 1).Delete Loop Until Err.Number End With End Sub
[/vba] Автор - krosav4ig Дата добавления - 08.12.2018 в 17:32