, поэтому я довольно новичок в кодировании, особенно в Vbscript, поэтому я возился, пытаясь научиться. Поэтому я работал над небольшой программой, которая будет принимать имя пользователя (например, имя пользователя компьютера), добавить буквы и оскорбить пользователя на основе суммы, потому что почему бы и нет. Тем не менее, я все время сталкиваюсь с ошибкой на строке 10, и из-за того, как мой код настроен, я уверен, что столкнусь с ним и на каждой последующей строке. Не могли бы вы мне помочь? Я продолжаю получать код ошибки 800A01B6 «Объект не поддерживает это свойство или метод». (я удалил оскорбления из-за используемым языком, не беспокойтесь о том, что ...)объект vbscripting не поддерживает свойство или метод Если elseif else
Dim networkInfo
Dim nameVal
Dim infoStr
Dim insult
Set networkInfo = CreateObject("WScript.NetWork")
nameVal=1
infoStr = networkInfo.UserName & vbCr & vbLf
if InStr(1, networkInfo, "a") > 0 Then
nameVal = nameVal + 1
Elseif InStr(1, networkInfo, "b") > 0 Then
nameVal = nameVal + 2
Elseif InStr(1, networkInfo, "c") > 0 Then
nameVal = nameVal + 3
Elseif InStr(1, networkInfo, "d") > 0 Then
nameVal = nameVal + 4
Elseif InStr(1, networkInfo, "e") > 0 Then
nameVal = nameVal + 5
Elseif InStr(1, networkInfo, "f") > 0 Then
nameVal = nameVal + 6
Elseif InStr(1, networkInfo, "g") > 0 Then
nameVal = nameVal + 7
Elseif InStr(1, networkInfo, "h") > 0 Then
nameVal = nameVal + 8
Elseif InStr(1, networkInfo, "i") > 0 Then
nameVal = nameVal + 9
Elseif InStr(1, networkInfo, "j") > 0 Then
nameVal = nameVal + 10
Elseif InStr(1, networkInfo, "k") > 0 Then
nameVal = nameVal + 11
Elseif InStr(1, networkInfo, "l") > 0 Then
nameVal = nameVal + 12
Elseif InStr(1, networkInfo, "m") > 0 Then
nameVal = nameVal + 13
Elseif InStr(1, networkInfo, "n") > 0 Then
nameVal = nameVal + 14
Elseif InStr(1, networkInfo, "o") > 0 Then
nameVal = nameVal + 15
Elseif InStr(1, networkInfo, "p") > 0 Then
nameVal = nameVal + 16
Elseif InStr(1, networkInfo, "q") > 0 Then
nameVal = nameVal + 17
Elseif InStr(1, networkInfo, "r") > 0 Then
nameVal = nameVal + 18
Elseif InStr(1, networkInfo, "s") > 0 Then
nameVal = nameVal + 19
Elseif InStr(1, networkInfo, "t") > 0 Then
nameVal = nameVal + 20
Elseif InStr(1, networkInfo, "u") > 0 Then
nameVal = nameVal + 21
Elseif InStr(1, networkInfo, "v") > 0 Then
nameVal = nameVal + 22
Elseif InStr(1, networkInfo, "w") > 0 Then
nameVal = nameVal + 23
Elseif InStr(1, networkInfo, "x") > 0 Then
nameVal = nameVal + 24
Elseif InStr(1, networkInfo, "y") > 0 Then
nameVal = nameVal + 25
Elseif InStr(1, networkInfo, "z") > 0 Then
nameVal = nameVal + 26
Else MsgBox ("")
End If
If nameVal < 5 Then
insult = ("")
Elseif nameVal > 5 Then
insult = ("")
Elseif nameVal > 10 Then
insult = ("")
Elseif nameVal > 20 Then
insult = ("")
Elseif nameVal > 30 Then
insult = ("")
Elseif nameVal > 40 Then
insult = ("")
Elseif nameVal > 50 Then
insult = ("")
Elseif nameVal > 60 Then
insult = ("")
Elseif nameVal > 70 Then
insult = ("")
Elseif nameVal > 80 Then
insult = ("")
Elseif nameVal > 90 Then
insult = ("")
Elseif nameVal > 100 Then
insult = ("")
Elseif nameVal > 110 Then
insult = ("")
Elseif nameVal > 120 Then
insult = ("")
Elseif nameVal > 130 Then
insult = (".")
Elseif nameVal > 140 Then
insult = ("")
Elseif nameVal > 150 Then
insult = ("")
Elseif nameVal > 160 Then
insult = ("")
Elseif nameVal > 170 Then
insult = ("")
Elseif nameVal > 180 Then
insult = ("")
Elseif nameVal > 190 Then
insult = ("")
Elseif nameVal > 200 Then
insult = ("")
Elseif nameVal > 210 Then
insult = ("")
Elseif nameVal > 220 Then
insult = ("")
Elseif nameVal > 230 Then
insult = ("")
Elseif nameVal > 240 Then
insult = ("")
Elseif nameVal > 250 Then
insult = ("")
Elseif nameVal > 260 Then
insult = ("")
Elseif nameVal > 270 Then
insult = ("")
Elseif nameVal > 280 Then
insult = ("")
Elseif nameVal > 290 Then
insult = ("")
Elseif nameVal > 300 Then
insult = ("")
Elseif nameVal > 310 Then
insult = ("")
Elseif nameVal > 320 Then
insult = ("")
Elseif nameVal > 330 Then
insult = ("")
Elseif nameVal > 340 Then
insult = ("")
Elseif nameVal > 350 Then
insult = (".")
Elseif nameVal > 360 Then
insult = ("")
Elseif nameVal > 370 Then
insult = ("")
Elseif nameVal > 380 Then
insult = ("")
Elseif nameVal > 390 Then
insult = ("")
Elseif nameVal > 400 Then
insult = ("")
Elseif nameVal > 410 Then
insult = ("")
Elseif nameVal > 420 Then
insult = ("")
Elseif nameVal = 420 Then
insult = ("")
Elseif nameVal > 430 Then
insult = ("")
Elseif nameVal > 440 Then
insult = ("")
Elseif nameVal > 450 Then
insult = ("")
Elseif nameVal > 460 Then
insult = ("")
Elseif nameVal > 470 Then
insult = ("")
Elseif nameVal > 480 Then
insult = ("")
Elseif nameVal > 490 Then
insult = ("")
Elseif nameVal > 500 Then
insult = ("")
Elseif nameVal > 510 Then
insult = ("")
Elseif nameVal > 520 Then
insult = ("")
Elseif nameVal > 530 Then
insult = ("")
End If
MsgBox infoStr & insult
Если вы можете дать мне советы о том, как сделать этот код более эффективным или лучше структурирован, я был бы признателен за это! Спасибо, что нашли время, чтобы прочитать это и любую помощь, которую вы можете мне дать.
Это классический случай нарушения премьер принцип программирования - [DRY] (https://en.wikipedia.org/wiki/Don't_repeat_yourself). Что вы пытаетесь сделать? Вы можете использовать «Массив» для каждого значения и использовать цикл для их запуска и выполнять проверку без повторения всех повторяющихся строк, трудночитаемых, неэффективных и боль для управления. – Lankymart
Я не думаю, что ваш скрипт работает так, как вы хотите его на данный момент.Похоже, вы хотите проверить все варианты букв в имени пользователя и сгенерировать из него числовое значение, однако на данный момент он будет проверять только первое совпадение, чтобы ваша следующая проверка, например, для 'Elseif nameVal = 420 Then' никогда не пострадает от наибольшего числа, которое будет выдано первой проверкой, это '26'. – Lankymart