Своя функция в VBA

Узнай цену своей работы

Формулировка задачи:

Пишу в Exel-e функцию:
MsgBox mystr2 -выводит сообщение с правильнойй строкой (два раза почему-то), сама же функция возвращает 0.
Не подскажете что не так делаю?

Решение задачи: «Своя функция в VBA»

textual
Листинг программы
<font color="blue">Sub</font> ffff()
    a = Timer
    mystr2 = <font color="teal">""</font>
    strSource = <font color="teal">"C:\Curs.mdb"</font>
    <font color="blue">Set</font> dbAccess = OpenDatabase(strSource, False, False, <font color="teal">";DATABASE="</font> & strSource)
    stSQL = <font color="teal">"SELECT * FROM [Curs]"</font>
    <font color="blue">Set</font> rst = dbAccess.OpenRecordset(stSQL)
    <font color="blue">If</font> rst.RecordCount > <font color="darkblue"><b>0</b></font> <font color="blue">Then</font> <font color="00AA00">'проверка что записи есть</font>
        <font color="blue">For</font> x = <font color="darkblue"><b>1</b></font> <font color="blue">To</font> <font color="darkblue"><b>100</b></font>
            rst.MoveLast
            rst.MoveFirst
            <font color="blue">Do</font> <font color="blue">While</font> <font color="blue">Not</font> rst.EOF <font color="00AA00">' крутим до конца recordset</font>
                <font color="blue">For</font> i = <font color="darkblue"><b>0</b></font> <font color="blue">To</font> rst.Fields.Count - <font color="darkblue"><b>1</b></font> <font color="00AA00">'крутим по всем столбцам recordset</font>
                    <font color="blue">If</font> i = rst.Fields.Count - <font color="darkblue"><b>1</b></font> <font color="blue">Then</font> <font color="00AA00">'если последний столбец то без <font color="teal">"& "</font>-<font color="teal">""</font></font>
                        mystr2 = mystr2 & rst.Fields(i)
                    <font color="blue">Else</font>
                        mystr2 = mystr2 & rst.Fields(i) & <font color="teal">"-"</font>
                    <font color="blue">End</font> <font color="blue">If</font>
                <font color="blue">Next</font>
                rst.MoveNext
            <font color="blue">Loop</font>
        <font color="blue">Next</font>
    <font color="blue">End</font> <font color="blue">If</font>
    rst.<font color="blue">Close</font>
    dbAccess.<font color="blue">Close</font>
    <font color="blue">Set</font> reRecordSet = <font color="blue">Nothing</font>
    <font color="blue">Set</font> dbAccess = <font color="blue">Nothing</font>
    MsgBox Timer - a
<font color="blue">End</font> <font color="blue">Sub</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы