IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Reply to this topicStart new topic
> Visual Basic for Application, нужна помощь
izrukvruki
сообщение 28 Apr 2008, 16:44
Сообщение #1

Князь Бореи
Сообщений: 5 171
Спасибо сказали: 1349 раз




У меня стоял CorelDraw 10. В нем я написал небольшой макрос - все работало на ура. Тепрь нам обновили компы и поставили CorelDraw 13 (Х3) - в нем этот макрос выдает ошибки на вроде очень простых участках кода, например chr(13) или year(date). Кто нибудь сталкивался с подобным? может быть в офисе?

Версии бейсика разные - раньше была 6, в тринадцатом стоит - 6,5.
Неужели в более новом бейсике изменили синтаксис и убрали некоторые функции/процедуры?
Go to the top of the pageAdd Nick
 
+Quote Post
Guevara-chan
сообщение 29 Apr 2008, 08:33
Сообщение #2

•●Revolucionario●•
Сообщений: 2 467
Спасибо сказали: 5936 раз




А ошибки какие ?


--------------------
life MOV.I #life+1, *life
האם יש זמן לעצור ?
Go to the top of the pageAdd Nick
 
+Quote Post
izrukvruki
сообщение 29 Apr 2008, 10:17
Сообщение #3

Князь Бореи
Сообщений: 5 171
Спасибо сказали: 1349 раз




ну вот например на функции chr(13)

пишет

Compile error:
Can't find project or librar
Go to the top of the pageAdd Nick
 
+Quote Post
Guevara-chan
сообщение 29 Apr 2008, 11:44
Сообщение #4

•●Revolucionario●•
Сообщений: 2 467
Спасибо сказали: 5936 раз




Хм... ИМХО, функции те или перименовали, или с установкой что-то не так прошло.


--------------------
life MOV.I #life+1, *life
האם יש זמן לעצור ?
Go to the top of the pageAdd Nick
 
+Quote Post
izrukvruki
сообщение 31 Jan 2013, 09:34 (Сообщение отредактировал izrukvruki - 31 Jan 2013, 10:27)
Сообщение #5

Князь Бореи
Сообщений: 5 171
Спасибо сказали: 1349 раз




Как выйти из процедуры при ошибки в функции?

У меня hex цвет переводится в rgb цвет, при недопустимом символе в hex (т.е. если s не цифра и не a..f)

Код
Public Function simvol(s As String) As Integer
    If IsNumeric(s) = True Then
    simvol = vba.CInt(s)
    ElseIf s = "A" Or s = "a" Then
    simvol = 10
    ElseIf s = "B" Or s = "b" Then
    simvol = 11
    ElseIf s = "C" Or s = "c" Then
    simvol = 12
    ElseIf s = "D" Or s = "d" Then
    simvol = 13
    ElseIf s = "E" Or s = "e" Then
    simvol = 14
    ElseIf s = "F" Or s = "f" Then
    simvol = 15
    Else: MsgBox ("недопустимый цвет"): TextBox2 = "": Exit Function
    End If
End Function



нужно прервать процедуру

Код
Private Sub CommandButton1_Click()
    Dim r, g, b As Integer
    TextBox2.Text = ""
    If Len(TextBox1) <> 6 Then MsgBox ("недопустимый цвет"): Exit Sub
    r = simvol(VBA.Mid(TextBox1, 1, 1)) * 16 + simvol(VBA.Mid(TextBox1, 2, 1))
    g = simvol(VBA.Mid(TextBox1, 3, 1)) * 16 + simvol(VBA.Mid(TextBox1, 4, 1))
    b = simvol(VBA.Mid(TextBox1, 5, 1)) * 16 + simvol(VBA.Mid(TextBox1, 6, 1))
    
    TextBox2.Text = r & ", " & g & ", " & b    

End Sub




Сам понял,, что вместо "Exit Function" нужно поставить "End"
Go to the top of the pageAdd Nick
 
+Quote Post
izrukvruki
сообщение 15 Mar 2013, 16:10
Сообщение #6

Князь Бореи
Сообщений: 5 171
Спасибо сказали: 1349 раз




Ни у кого нету на VB программы классические часы (со стрелками)? Племяннице в школе 10 класс надо...
Go to the top of the pageAdd Nick
 
+Quote Post
Guevara-chan
сообщение 19 Mar 2013, 19:48
Сообщение #7

•●Revolucionario●•
Сообщений: 2 467
Спасибо сказали: 5936 раз




Последний раз было у них: http://bit.ly/ZXUpZ7


--------------------
life MOV.I #life+1, *life
האם יש זמן לעצור ?
Go to the top of the pageAdd Nick
 
+Quote Post
izrukvruki
сообщение 11 Apr 2014, 16:19
Сообщение #8

Князь Бореи
Сообщений: 5 171
Спасибо сказали: 1349 раз




к текстовому полю textbox добавил свойство multiline, чтоб можно было несколько строк вводить, разделяя их ENTER'ом.
А как теперь построчно считать?
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 11 Apr 2014, 16:52
Сообщение #9

😸🧡✊✌️
Сообщений: 16 483
Спасибо сказали: 3388 раз




Считать весь текст, затем разбить на строки по chr(13)+chr(10).


--------------------
Я слежу за тобой!
* tolic.narod.ru

Цитата
Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел.
Борис "Бонус" Репетур, "От винта!", выпуск 38.


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Guevara-chan
сообщение 11 Apr 2014, 16:59
Сообщение #10

•●Revolucionario●•
Сообщений: 2 467
Спасибо сказали: 5936 раз




VbCrLf, если уж совсем точно.


--------------------
life MOV.I #life+1, *life
האם יש זמן לעצור ?


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
izrukvruki
сообщение 11 Apr 2014, 21:36
Сообщение #11

Князь Бореи
Сообщений: 5 171
Спасибо сказали: 1349 раз




а по номеру строки сразу нельзя?
Go to the top of the pageAdd Nick
 
+Quote Post
Guevara-chan
сообщение 13 Apr 2014, 13:27
Сообщение #12

•●Revolucionario●•
Сообщений: 2 467
Спасибо сказали: 5936 раз




Не предсмотрено в данном случае. Придется через Split.


--------------------
life MOV.I #life+1, *life
האם יש זמן לעצור ?


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 27 November 2025 - 23:42
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика