Аутентификация OAuth в Python
py-thonny 22.05.2025
OAuth (Open Authorization) — это целый стандарт для делегированного доступа. Звучит занудно? Давайте проще: OAuth позволяет приложениям получать доступ к информации пользователя на сторонних сервисах. . .
Хеширование и соль паролей в веб-приложениях C#
stackOverflow 22.05.2025
Когда-то в начале своей карьеры я тоже грешил простейшими подходами к хранению паролей – MD5-хеширование казалось верхом защиты. Но технологии не стоят на месте, вычислительные мощьности растут, и. . .
Генераторы Python для эффективной обработки данных
AI_Generated 21.05.2025
В Python существует инструмент настолько мощный и в то же время недооценённый, что я часто сравниваю его с тайным оружием в арсенале программиста. Речь идёт о генераторах — одной из самых элегантных. . .
Чем заменить Swagger в .NET WebAPI
stackOverflow 21.05.2025
Если вы создавали Web API на . NET в последние несколько лет, то наверняка сталкивались с зелёным интерфейсом Swagger UI. Этот инструмент стал практически стандартом для документирования и. . .
Использование Linq2Db в проектах C# .NET
UnmanagedCoder 21.05.2025
Среди множества претендентов на корону «идеального ORM» особое место занимает Linq2Db — микро-ORM, балансирующий между мощью полноценных инструментов и легковесностью ручного написания SQL.
Что. . .
Реализация Domain-Driven Design с Java
Javaican 20.05.2025
DDD — это настоящий спасательный круг для проектов со сложной бизнес-логикой. Подход, предложенный Эриком Эвансом, позволяет создавать элегантные решения, которые точно отражают реальную предметную. . .
Возможности и нововведения C# 14
stackOverflow 20.05.2025
Выход версии C# 14, который ожидается вместе с . NET 10, приносит ряд интересных нововведений, действительно упрощающих жизнь разработчиков. Вы уже хотите опробовать эти новшества? Не проблема! Просто. . .
Собеседование по Node.js — вопросы и ответы
Reangularity 20.05.2025
Каждому разработчику рано или поздно приходится сталкиватся с техническими собеседованиями — этим стрессовым испытанием, где решается судьба карьерного роста и зарплатных ожиданий. В этой статье я. . .
Cython и C (СИ) расширения Python для максимальной производительности
py-thonny 20.05.2025
Python невероятно дружелюбен к начинающим и одновременно мощный для профи. Но стоит лишь заикнуться о высокопроизводительных вычислениях — и энтузиазм быстро улетучивается. Да, Питон медлительнее. . .
Безопасное программирование в Java и предотвращение уязвимостей (SQL-инъекции, XSS и др.)
Javaican 19.05.2025
Самые распространёные векторы атак на Java-приложения за последний год выглядят как классический «топ-3 хакерских фаворитов»: SQL-инъекции (31%), межсайтовый скриптинг или XSS (28%) и CSRF-атаки. . .
|
eremeev23rus Пользователь Сообщений: 24 |
#1 15.09.2015 11:10:40 Добрый день.
|
||
|
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
eremeev23rus, здравия. Можно в ВБА написать этот макрос, отладить и после перенести в ВБС.
|
|
JayBhagavan, Спасибо, а данный макрос необходимо преобразовывать? |
|
|
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
eremeev23rus, а Вы попробуйте его так в ВБА запустить и узнаете.
|
|
eremeev23rus Пользователь Сообщений: 24 |
#5 15.09.2015 11:29:20 JayBhagavan,
Подскажите, пожалуйста, что не так я сформировал? |
||
|
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
eremeev23rus, что не так я сходу не скажу. (у меня нет Вашего файла, с которым работает макрос) А что Вас не устраивает или на чём ошибка возникает, если она есть?
|
|
JayBhagavan, при выполнении отображается ошибка: Предполагается наличие окончания инструкции, Код: 800A0401, ошибка компиляции. |
|
|
Влад Пользователь Сообщений: 1189 |
Нет в ВБС такие понятий как «Sheets» и «Cells» — это объекты книги/листа, поэтому должна быть указана полная ссылка на них. |
|
Влад, а можно пример? Для лучшего понимания. |
|
|
Влад Пользователь Сообщений: 1189 |
#10 15.09.2015 12:04:12 Пример:
|
||
|
Не удается сделать описаным методом. Может можно сделать, чтобы нажималась кнопка на листе в Excel? |
|
|
Hugo Пользователь Сообщений: 26287 |
Rows.Count возможно тоже непонятно для vbs. Изменено: Hugo — 15.09.2015 13:38:29 |
|
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
#13 15.09.2015 13:43:25
Изменено: JayBhagavan — 15.09.2015 14:09:42
|
|
|
Hugo Пользователь Сообщений: 26287 |
Ну и для vbs первой строкой нужно написать |
|
Hugo Пользователь Сообщений: 26287 |
Нашёл ещё нестыковку — в vbs нельзя писать |
|
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
#16 15.09.2015 13:55:51
Исправил.
То есть нужно убрать Sub, () и End Sub?
|
||||
|
Hugo Пользователь Сообщений: 26287 |
Ещё — xlUp нужно заменить на -4162 |
|
Hugo Пользователь Сообщений: 26287 |
#18 15.09.2015 14:00:43
Да, или первой строкой вызывать этот sub |
||
|
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
#19 15.09.2015 14:10:23 Hugo, благодарю за Ваши замечая. Вроде все учёл.
|
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
1 2018-03-21 00:46:44
- badhabit
- Участник
- Неактивен
- Рейтинг : [0|0]
Тема: VBS: не получается сделать массив структур с массивом )
Добрый день. Не знаю правильно ли я использовал терминологию в заголовке, все ж С/С++ ближе… Но есть потребность сделать динамический массив структур, в свою очередь каждая из которых тоже содержит «мембером» динамический массив… Попробовал вот так:
Option Explicit
Main
Function Main
Dim arr(), i
For i = 0 To 10
ReDim Preserve arr(i)
Set arr(i) = New struct
arr(i).sVar1 = "str" & i & " var1"
arr(i).sVar2 = "str" & i & " var2"
Dim j
For j = 0 To 10
ReDim Preserve arr(i).aArr(j)
arr(i).aArr(j) = 121212 + j
Next
Next
For i = 0 To UBound(arr)
WScript.Echo "i: " & i & " var1: " & arr(i).sVar1 & " var2: " & arr(i).sVar2
Next
End Function
Class struct
Public aArr()
Public sVar1
Public svar2
End Class
На строке
ReDim Preserve arr(i).aArr(j)
валится с ошибкой:
Ошибка компиляции Microsoft VBScript: Предполагается наличие окончания инструкции
Подскажите, что делаю не так…
2 Ответ от Xameleon 2018-03-21 14:37:31
- Xameleon
- Разработчик
- Неактивен
Re: VBS: не получается сделать массив структур с массивом )
badhabit, а можно увидеть скрипт целиком ? А то объявления struct не видно.
На первый взгляд, как я понимаю, беда в том, что Вы пытаетесь «редимить» свойство объекта. К сожалению, VBScript хочет после Redim получить прямую ссылку на массив. Думаю в Вашем случае может помочь что-то типа:
Option Explicit
Main
Function Main
Dim arr(), i, propArray
For i = 0 To 10
ReDim Preserve arr(i)
Set arr(i) = New struct
arr(i).sVar1 = "str" & i & " var1"
arr(i).sVar2 = "str" & i & " var2"
Dim j
propArray = arr(i).aArr
For j = 0 To 10
ReDim Preserve propArray(j)
propArray(j) = 121212 + j
Next
arr(i).aArr = propArray
Next
For i = 0 To UBound(arr)
WScript.Echo "i: " & i & " var1: " & arr(i).sVar1 & " var2: " & arr(i).sVar2
Next
End Function
Не уверен, что Вы выбрали правильный путь. Думаю всё-таки стоит взглянуть на всю картину целиком.
Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !
3 Ответ от badhabit 2018-03-21 16:28:20 (изменено: badhabit, 2018-03-21 19:29:16)
- badhabit
- Участник
- Неактивен
- Рейтинг : [0|0]
Re: VBS: не получается сделать массив структур с массивом )
Xameleon, так я привёл весь скрипт, просто проскролить надо, в самом низу есть объявление класса struct
Пс. Ваш способ попробую
4 Ответ от badhabit 2018-03-21 20:32:29
- badhabit
- Участник
- Неактивен
- Рейтинг : [0|0]
Re: VBS: не получается сделать массив структур с массивом )
Option Explicit
Main
Function Main
Dim arr(), i, propArray
For i = 0 To 10
ReDim Preserve arr(i)
Set arr(i) = New struct
arr(i).sVar1 = "str" & i & " var1"
arr(i).sVar2 = "str" & i & " var2"
Dim j
propArray = arr(i).aArr
For j = 0 To 10
ReDim Preserve propArray(j)
propArray(j) = 121212 + j
Next
arr(i).aArr = propArray
Next
Dim k
For i = 0 To UBound(arr)
WScript.Echo "i: " & i & " var1: " & arr(i).sVar1 & " var2: " & arr(i).sVar2
Dim zzz()
zzz = arr(i).aArr
For k = 0 To UBound(zzz) - 1
WScript.Echo zzz(k)
Next
Next
End Function
Class struct
Public aArr()
Public sVar1
Public svar2
End Class
теперь ругается тут
говрит
несоответствие типа
5 Ответ от Xameleon 2018-03-22 13:37:20
- Xameleon
- Разработчик
- Неактивен
Re: VBS: не получается сделать массив структур с массивом )
badhabit,
badhabit пишет:
Xameleon, так я привёл весь скрипт, просто проскролить надо, в самом низу есть объявление класса struct
Прошу прощения. Не заметил.
Тогда вот так можно сделать:
Option Explicit
Main
Function Main
Dim arr(), i, propArray
For i = 0 To 10
ReDim Preserve arr(i)
Set arr(i) = New struct
arr(i).sVar1 = "str" & i & " var1"
arr(i).sVar2 = "str" & i & " var2"
Dim j
propArray = arr(i).aArr
For j = 0 To 10
ReDim Preserve propArray(j)
propArray(j) = 121212 + j
Next
arr(i).aArr = propArray
Next
Dim k
For i = 0 To UBound(arr)
WScript.Echo "i: " & i & " var1: " & arr(i).sVar1 & " var2: " & arr(i).sVar2
Dim zzz
zzz = arr(i).aArr
For k = 0 To UBound(zzz) - 1
WScript.Echo zzz(k)
Next
Next
End Function
Class struct
Public aArr
Public sVar1
Public svar2
Private Sub Class_Initialize()
aArr = Array()
End Sub
End Class
Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !
6 Ответ от badhabit 2018-03-25 11:45:39
- badhabit
- Участник
- Неактивен
- Рейтинг : [0|0]
Re: VBS: не получается сделать массив структур с массивом )
Xameleon, спасибо большое. Все заработало. Вот ещё ссылка по теме https://stackoverflow.com/questions/480 … n-vbscript
7 Ответ от Xameleon 2018-03-25 16:19:00
- Xameleon
- Разработчик
- Неактивен
Re: VBS: не получается сделать массив структур с массивом )
badhabit, рад, что пригодилось. Вообще, ИМХО, VBS классы больше подразумеваются под объектную модель, нежели под структуры. Возможно Вашу задачу можно решить иначе. Если поведаете о конечной цели, возможно смогу посоветовать что-то более подходящее.
Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !
8 Ответ от badhabit 2018-03-25 17:35:12
- badhabit
- Участник
- Неактивен
- Рейтинг : [0|0]
Re: VBS: не получается сделать массив структур с массивом )
Да в принципе надо было получить то — что получилось, без разницы как это называть.)) Получился динамический массив «объектов» и в каждом еще по одному динамическому массиву… Добавив в «структуру» конструктор и метод, в принципе получил класс))
Просто писать на vbs самый, в настоящий момент, удобный вариант, а синтаксис я его не шибко хорошо знаю, так что еще раз спасибо за помощь!
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Troubleshooting Code 800A0401 – Expected End of Statement
Good news, here is another example of a WSH error message with a helpful Char: number. Count along the line until you get to the offending character. With Error 800A0401 start by looking for missing ampersands (&).
Introduction to Code 800A0401
Error code, 800A0401 occurs when you execute a VBScript. This is a compilation error, therefore check your punctuation. A wild guess, you have left out an ampersand (&), or possibly a comma.
The Symptoms You Get
The script does not execute as you had hoped. Instead, Windows Scripting host generates a message box like this picture: Good news, I have three examples of code: 800A0401.
The Cause of Code 800A0401 VBScript Error
Your VBScript contains a punctuation error. Note: The clue from Source: Microsoft VBScript compilation error, this means a syntax error in your script. In this case the Char: number (33) is particularly valuable in troubleshooting.
The Solution to Error: Expected end of statement
Check the syntax of your script, in particular double-check punctuation marks (&, comma, speech marks or full stop.). In this instance, Windows Scripting Host has detected a mix-up between a comma and a full stop. As ever, a line number is helpful when troubleshooting, moreover, any Char : number other than 1, will pin-point the problem.
‡
Example 1 of Script for Code 800A0401
Note: The error is at Line 3, Character 33 – wbemServices, Instances
It should be wbemServices.Instances (Full stop, and not a comma)
‘ VBScript Error 800A0401
strComputer = «Alan»
set wbemservices = GetObject(«Winmgmts:\\» & strComputer)
set wbemObjectSet = wbemServices, InstancesOf («win32_LogicalMemoryConfiguration»)
For each wbemobject in wbemobjectset
WScript.echo «Tot Physical Memory » & wbemobject.totalPhysicalMemory
Next
Guy Recommends: A Free Trial of the Network Performance Monitor (NPM) v11.5
SolarWinds’ Orion performance monitor will help you discover what’s happening on your network. This utility will also guide you through troubleshooting; the dashboard will indicate whether the root cause is a broken link, faulty equipment or resource overload.
What I like best is the way NPM suggests solutions to network problems. Its also has the ability to monitor the health of individual VMware virtual machines. If you are interested in troubleshooting, and creating network maps, then I recommend that you try NPM now.
Download a free trial of Solarwinds’ Network Performance Monitor
Example 2 of Script for Error 800A0401
Problem
Wscript.Echo objNetwork.UserName » at » & objNetwork.ComputerName
An & (ampersand) is missing it should be:
Correction
Wscript.Echo objNetwork.UserName & » at » & objNetwork.ComputerName
‘ VBScript 800A0401 Error
Set ObjNetwork = CreateObject(«Wscript.Network»)
Wscript.Echo objNetwork.UserName » at » & objNetwork.ComputerName
[ThemesGuy/google_leader728htm]
Example 3 – Missing Comma
The error is on line 10 char 33, it needs a comma between the drive letter and the UNC path
objNetwork.MapNetworkDrive «R:» «\\alan\backup»
objNetwork.MapNetworkDrive «R:» , «\\alan\backup»
‘ BudgetPear.vbs
‘ Script to map the Budget share on the server pear
‘ Version 1.1 August 2010
‘ Guy Thomas https://computerperformance.co.uk
Option Explicit
Dim objNetwork
Set objNetwork = CreateObject(«Wscript.Network»)
objNetwork.MapNetworkDrive «R:» «\\alan\backup»
WSript.echo » Share Mapped «
WScript.Quit
‘ End of Guy’s script
Summary of Error Code 800A0401
As usual with 0800 error codes, check the line number and the char number. Pay careful attention to any punctuation. Is there a comma, missing? Could there be a comma, where the script needs a full stop?
See More Windows Update Error Codes 8004 Series
• Error 800A101A8 Object Required •Error 800A0046 •Error 800A10AD •Error 800A000D
• Error 80048820 •Error 800A0401 •Review of SolarWinds Permissions Monitor
• Error 80040E14 • Error 800A03EA • Error 800A0408 • Error 800A03EE
Guy Recommends: WMI Monitor and It’s Free!
Windows Management Instrumentation (WMI) is one of the hidden treasures of Microsoft operating systems. Fortunately, SolarWinds have created the WMI Monitor so that you can examine these gems of performance information for free. Take the guess work out of which WMI counters to use for applications like Microsoft Active Directory, SQL or Exchange Server.
Download your free copy of WMI Monitor
Do you need additional help?
- For interpreting the WSH messages check Diagnose 800 errors.
- For general advice try my 7 Troubleshooting techniques.
- See master list of 0800 errors.
- Codes beginning 08004…
- Codes beginning 08005…
- Codes beginning 08007…
- Codes beginning 0800A…
Give something back?
Would you like to help others? If you have a good example of this error, then please email me, I will publish it with a credit to you:
If you like this page then please share it with your friends
Товарищи помогите кто знает советом решить следующую проблему.
Попытался в 1с использовать MSScriptControl, следующим образом:
Script=Новый COMОбъект(«MSScriptControl.ScriptControl»);
Script.Language=»vbscript»;
СтрокаСкрипта=»Private Declare Function URLDownloadToFile Lib «»urlmon.dll»» Alias «»URLDownloadToFileA»» (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
|Sub GetFile
|Dim ret As Long
|ret = URLDownloadToFile(0, «»http://www.mail.ru»», «»c:\1.html»», 0, 0)
|End Sub»;
Script.AddCode(СтрокаСкрипта);
При выполнении последнего оператора выдается ошибка:
{Форма.Форма(93)}: Ошибка при вызове метода контекста (AddCode): Произошла исключительная ситуация (Ошибка компиляции Microsoft VBScript): Предполагается наличие окончания инструкции
Script.AddCode(СтрокаСкрипта);
по причине:
Произошла исключительная ситуация (Ошибка компиляции Microsoft VBScript): Предполагается наличие окончания инструкции.
Этот же код написанный в екселе в качестве макроса прекрасно работает. Я так понимаю проблема в том, что я пытаюсь определить функцию URLDownloadToFile из библиотеки «urlmon.dll».
Не подскажите как правильно написать чтобы заработало?
