Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Visual Basic for Application
DF2 :: ФОРУМЫ > Основные форумы > Софт и железо > Программирование / Coding
izrukvruki
У меня стоял CorelDraw 10. В нем я написал небольшой макрос - все работало на ура. Тепрь нам обновили компы и поставили CorelDraw 13 (Х3) - в нем этот макрос выдает ошибки на вроде очень простых участках кода, например chr(13) или year(date). Кто нибудь сталкивался с подобным? может быть в офисе?

Версии бейсика разные - раньше была 6, в тринадцатом стоит - 6,5.
Неужели в более новом бейсике изменили синтаксис и убрали некоторые функции/процедуры?
Guevara-chan
А ошибки какие ?
izrukvruki
ну вот например на функции chr(13)

пишет

Compile error:
Can't find project or librar
Guevara-chan
Хм... ИМХО, функции те или перименовали, или с установкой что-то не так прошло.
izrukvruki
Как выйти из процедуры при ошибки в функции?

У меня 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"
izrukvruki
Ни у кого нету на VB программы классические часы (со стрелками)? Племяннице в школе 10 класс надо...
Guevara-chan
Последний раз было у них: http://bit.ly/ZXUpZ7
izrukvruki
к текстовому полю textbox добавил свойство multiline, чтоб можно было несколько строк вводить, разделяя их ENTER'ом.
А как теперь построчно считать?
tolich
Считать весь текст, затем разбить на строки по chr(13)+chr(10).
Guevara-chan
VbCrLf, если уж совсем точно.
izrukvruki
а по номеру строки сразу нельзя?
Guevara-chan
Не предсмотрено в данном случае. Придется через Split.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.