подскажите плиз, если я вызываю переменную через call с параметрами, то пишет ошибку, например: 1)call TreeView1_NodeClick -нормально 2)call TreeView1_NodeClick(ByVal Node As MSComctlLib.Node) - выдает ошибку Поскажите, пожалуйста синтаксис (как описать). Спасибо!
Спасибо за разъяснения конечно, но вы меня так и не поняли. Я сразу написал "Покажите, пожалуйста синтаксис (как описать). Спасибо!" Т.е. идет код и потом мне нужно вызвать через Call процедуры вот с этими параметрами. В скобках их оставлять нельзя, так как ошибка, так вы можете просто написать строку как вызвать TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer), как вы ее опишите (без разъяснений). Спасибо
Попытался сделать: Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) MsgBox "Произошло событие TextBox1_KeyDown" & vbCrLf & _ "KeyCode = " & KeyCode & vbCrLf & _ "Shift = " & Shift End Sub а после этого вызвать её по: Sub test() Call TextBox1_KeyDown End Sub и тоже, естественно, получил ошибку "Обязательный аргумент!" А как задать аргументы As MSForms.ReturnInteger абсолютно не понимаю... Если вам нужно обрабатывать именно ЭТО событие (я, например, всегда обрабатываю не его, а TextBox1_Change(), которое не требует хитрых аргументов), то можно произвести "подмену" подпрограммы обработки. Например, так:
Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Call TextBox1_KeyDown_Zamena(CInt(KeyCode), Shift) End Sub
Sub TextBox1_KeyDown_Zamena(KeyCode As Integer, Shift As Integer) MsgBox "Произошло событие TextBox1_KeyDown" & vbCrLf & _ "KeyCode = " & KeyCode & vbCrLf & _ "Shift = " & Shift End Sub
Sub test() Call TextBox1_KeyDown_Zamena(8, 0) End Sub
С уважением, Алексей(ИМХО: Excel-2003 - THE BEST!!!)
Ну, вообще-то я и сам догадался, что объявить аргумент можно As MSForms.ReturnInteger Но вот как сопоставить конкретную кнопку клавиатуры с этим самым MSForms.ReturnInteger? Хотя, если Макс спрашивает, то он наверное знает, что именно собирается передавать подпрограмме в аргументах, а значит и как что-то в MSForms.ReturnInteger преобразовать... :-)
С уважением, Алексей(ИМХО: Excel-2003 - THE BEST!!!)
{quote}{login=Alex_ST}{date=29.01.2010 01:44}{thema=}{post} Но вот как сопоставить конкретную кнопку клавиатуры с этим самым MSForms.ReturnInteger?{/post}{/quote}Ну вот же у Вас ответ: Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) MsgBox "Произошло событие TextBox1_KeyDown" & vbCrLf & _ "KeyCode = " & KeyCode & vbCrLf & _ "Shift = " & Shift End Sub
Только запускайте ее "нормальным" путем - нажатием кнопки в TextBox1. Мсгбох и даст код кнопки.
Супер, спасибо! А как быть с call TreeView1_NodeClick(ByVal Node As MSComctlLib.Node) как мне вызвать такую процедуру? Что то типо call TreeView1_NodeClick (а_здесь_что?) Спасибо!