Программирование на VBA простыми словами ур. 10 (Модули, константы, встроенные функции)

Поділитися
Вставка
  • Опубліковано 17 лис 2024

КОМЕНТАРІ • 27

  • @ИгорьПохлебаев-щ6в

    класс! все просто и ясно, как божий день. Огромное спасибо!

  • @Shubaduba-Haligali
    @Shubaduba-Haligali 5 років тому +2

    13:30 - CR - это сокращение от Carrige return. Т.е. возврат каретки. Это пошло от принтеров. Собственно, нечто вроде бумаги такого виртуального алфавитно-цифрового принтера мы и наблюдаем в окне Immedate. CrLf - это Carrige returtn и ещё Line feed. Т.е. возврат каретки и перевод строки. Т.е. как бы головка печатающего устройства возвращается в начальную позицию на строке и ещё переходит на новую строку.

  • @yibr8576
    @yibr8576 8 років тому

    Супер! Уроки то, что нужно для такого "0" в программировании как я. Большое спасибо!

  • @debasher
    @debasher 8 років тому +5

    "Умный гад" улыбнуло :)

  • @_Iokanaan_Marusidze_
    @_Iokanaan_Marusidze_ 8 років тому

    СПАСИБО за доходчиво-понятное изложение учебного материала !

  • @hitkino1
    @hitkino1 9 років тому

    Надеюсь у Вас еще будут уроки по vba или другим языкам? спасибо Вам большое. очень понравились все видео.

  • @bivans100
    @bivans100 9 років тому

    Очень жду продолжения цикла

  • @lichka7621
    @lichka7621 9 років тому +1

    Спасибо огромное! Ваше главное преимущество, то что Вы не ленитесь говорить подробно.. подскажите, как настроить VBA, чтоб при наведении курсора показывал значение ( как у Вас ) ?

    • @michal2007
      @michal2007 2 роки тому

      В следующих уроках этого плейлиста есть урок

  • @owandrey
    @owandrey 9 років тому

    Конечно понравился!!! Ещё!!!

  • @gevorghakobyan536
    @gevorghakobyan536 7 років тому

    Like:)
    и ещё вопрос: а есть ли функция позволяющая постепенно (по очереди) поменять буквы? к примеру
    aaaaa
    aaaab
    aaaac
    .........
    zzzzz
    или придётся самоу функцию написать ?

    • @gevorghakobyan536
      @gevorghakobyan536 7 років тому

      значит самому(((
      хотя не проблема)))
      ок, спс)))

  • @epelfeld
    @epelfeld 7 років тому

    f8 у меня не работает как справка по функции. она просто запускает компилятор

    • @klavatyuk1466
      @klavatyuk1466 6 років тому

      Автор видео оговорился F1 надо жать

  • @ПшквЪ
    @ПшквЪ 6 років тому

    $ - это String; & - это Long;

  • @kokoasdad8361
    @kokoasdad8361 7 років тому

    Не верю, что получу ответ, но все же...
    У меня есть условие в коде:
    c = Worksheets("1").Cells(25, d).Value
    If c = 1 Then
    Sheets("1").Cells(25, d).Interior.Color = ColorConstants.vbRed
    Else
    Sheets("1").Cells(25, d).Interior.Color = ColorConstants.vbWhite
    End If
    При с=1 у меня ячейка закрашивается в красный цвет, показывая что это не хорошо и нужно поменять значение.
    Затем меняем значение нажимаем кнопку расчет и цвет с красного меняется на белый, однако границы ячейки стираются.
    Можно это как-то избежать? Возможно есть команда, чтобы граница не стиралась, восстановилась или снова нарисовалась.

    • @kokoasdad8361
      @kokoasdad8361 7 років тому

      я завтра пришлю, но заранее предупреждаю, что только второй день за vba сижу

    • @kokoasdad8361
      @kokoasdad8361 7 років тому

      У меня только с кракозябрами из excel копируется. А если вставить в excel, то снова русские символы появляются. Поправить это дело не могу, т.к. на работе сижу, а проблемма похоже в реестре лежит (куда доступ закрыт).
      Попробуйте в excel вставить, может появится адекватный текст и если это произойдет, то суть такова.
      Есть две кнопки. Нажимаем первую кнопку и создаются таблицы, количесвтво которых указывает пользователь, затем заносятся значения переменных. Так как мы рассчитываем дробь по этим переменным, то переменную в знаменателе заменяем с 0 на 1. Затем нажимаем вторую кнопку и производися расчет. В том случае если пользователь забыл поменять значение переменной в знаменателе (равное 1) то эта ячейка закрашивается в красный цвет. Пользователь это видит, меняет значение и нажимает на кнопку расчета второй раз. После этого ячека меняет заливку на белый, однако границы ячейки стираются (дефолтного значения при выборе цвета заливки нет).
      Ну и сам вопрос мне снова границу дефолтную вырисовывать или есть альтернатива выделения ячеек, чтобы было заметно пользователю, что он забыл исправить значение (вариант с дилоговым окном, которое кричит что где-то там есть косяк, не очень подходит, так как ячейка должна быть визуальна помечена, чтобы пользователь наверняка не промазал).

    • @kokoasdad8361
      @kokoasdad8361 7 років тому

      Private Sub ÑðåäíèéÓðîâåíü_Click()
      Application.ScreenUpdating = False
      Dim ÐàñïðåäÁåçÏîäóðîâíÿ(1 To 6, 1 To 6) As Variant
      Dim n, i, w, a, q, s, z, x, e, d, t, g, j, m, h, k, l, o, p, é, ô As Integer
      Dim c, r, f, v, b, y As String
      q = Interaction.InputBox("Ââåäèòå êîëè÷åñòâî ëèíèé ñ ðàçíûì ñå÷åíèåì è/èëè äëèíîé êàáåëÿ è/èëè òîêîì íàãðóçêè äëÿ ðàñïðåäåëèòåëüíûõ óñòðîéñòâ ñðåäíåãî óðîâíÿ ÁÅÇ ïîäóðîâíÿ")
      a = Interaction.InputBox("Ââåäèòå êîëè÷åñòâî ëèíèé ñ ðàçíûì ñå÷åíèåì è/èëè äëèíîé êàáåëÿ è/èëè òîêîì íàãðóçêè äëÿ ðàñïðåäåëèòåëüíûõ óñòðîéñòâ ñðåäíåãî óðîâíÿ Ñ ïîäóðîâíåì")
      Worksheets("ìàêðîñ").Cells(1, 5).Value = q
      Worksheets("ìàêðîñ").Cells(2, 5).Value = a
      For n = 2 To 200 Step 2
      For i = 22 To 29
      Cells(i, n).Clear
      Next
      For é = 32 To 39
      Cells(é, n).Clear
      Next
      For ô = 41 To 48
      Cells(ô, n).Clear
      Next
      Next
      For t = 1 To 30
      g = 4 * t - 2
      o = 4 * t - 1
      For z = 1 To q
      w = 4 * z - 2
      s = 4 * z
      j = 4 * z - 1
      'çàìåíÿåì ïócòóþ ÿ÷åéêó çíà÷åíèÿ ñå÷åíèÿ ñ 0 íà 1 ÷òîáû íå äåëèòü íà 0
      h = Worksheets("ðàñ÷åò").Cells(25, j).Value
      If h = 0 Then
      Worksheets("ðàñ÷åò").Cells(25, j).Value = 1
      End If
      'ïîäñòàíîâêà çíà÷åíèÿ óäåëüíîãî ñîïðîòèâëåíèÿ
      p = Worksheets("ìàêðîñ").Cells(11, 4).Value
      If p = 1 Then
      Worksheets("ðàñ÷åò").Cells(23, j).Value = 0.018
      End If
      If p = 2 Then
      Worksheets("ðàñ÷åò").Cells(23, j).Value = 0.03
      End If
      If p = 3 Then
      Worksheets("ðàñ÷åò").Cells(23, j).Value = Worksheets("ðàñ÷åò").Cells(18, 2).Value
      End If
      v = Worksheets("ðàñ÷åò").Cells(23, g).Value
      b = Worksheets("ðàñ÷åò").Cells(32, g).Value
      ÐàñïðåäÁåçÏîäóðîâíÿ(1, 1) = "p"
      ÐàñïðåäÁåçÏîäóðîâíÿ(1, 2) = "l"
      ÐàñïðåäÁåçÏîäóðîâíÿ(1, 3) = "S"
      ÐàñïðåäÁåçÏîäóðîâíÿ(1, 4) = "Ií/Iò"
      ÐàñïðåäÁåçÏîäóðîâíÿ(1, 5) = "Ràâ"
      ÐàñïðåäÁåçÏîäóðîâíÿ(1, 6) = "Rêñ"
      ÐàñïðåäÁåçÏîäóðîâíÿ(2, 1) = "Îì·ìì^2/ì"
      ÐàñïðåäÁåçÏîäóðîâíÿ(2, 2) = "ì"
      ÐàñïðåäÁåçÏîäóðîâíÿ(2, 3) = "ìì^2"
      ÐàñïðåäÁåçÏîäóðîâíÿ(2, 4) = "A"
      ÐàñïðåäÁåçÏîäóðîâíÿ(2, 5) = "ìÎì"
      ÐàñïðåäÁåçÏîäóðîâíÿ(2, 6) = "ìÎì"
      Sheets("ðàñ÷åò").Cells(23, w) = ÐàñïðåäÁåçÏîäóðîâíÿ(1, 1)
      Sheets("ðàñ÷åò").Cells(24, w) = ÐàñïðåäÁåçÏîäóðîâíÿ(1, 2)
      Sheets("ðàñ÷åò").Cells(25, w) = ÐàñïðåäÁåçÏîäóðîâíÿ(1, 3)
      Sheets("ðàñ÷åò").Cells(26, w) = ÐàñïðåäÁåçÏîäóðîâíÿ(1, 4)
      Sheets("ðàñ÷åò").Cells(27, w) = ÐàñïðåäÁåçÏîäóðîâíÿ(1, 5)
      Sheets("ðàñ÷åò").Cells(28, w) = ÐàñïðåäÁåçÏîäóðîâíÿ(1, 6)
      Sheets("ðàñ÷åò").Cells(23, s) = ÐàñïðåäÁåçÏîäóðîâíÿ(2, 1)
      Sheets("ðàñ÷åò").Cells(24, s) = ÐàñïðåäÁåçÏîäóðîâíÿ(2, 2)
      Sheets("ðàñ÷åò").Cells(25, s) = ÐàñïðåäÁåçÏîäóðîâíÿ(2, 3)
      Sheets("ðàñ÷åò").Cells(26, s) = ÐàñïðåäÁåçÏîäóðîâíÿ(2, 4)
      Sheets("ðàñ÷åò").Cells(27, s) = ÐàñïðåäÁåçÏîäóðîâíÿ(2, 5)
      Sheets("ðàñ÷åò").Cells(28, s) = ÐàñïðåäÁåçÏîäóðîâíÿ(2, 6)
      'çàìåíÿåì ïóñòûå ÿ÷åéêè íàçâàíèÿ ëèíèè íà ñëîâà
      c = Worksheets("ðàñ÷åò").Cells(22, w).Value
      If c = "" Then
      Worksheets("ðàñ÷åò").Cells(22, w).Value = "Íàçâàíèå ó÷àñòêà öåïè"
      End If
      Next
      If v = "" Then
      Sheets("ðàñ÷åò").Cells(22, g).Clear
      Sheets("ðàñ÷åò").Cells(23, o).Clear
      Sheets("ðàñ÷åò").Cells(25, o).Clear
      Sheets("ðàñ÷åò").Cells(29, o).Clear
      End If
      For x = 1 To a
      e = 4 * x - 2
      d = 4 * x
      m = 4 * x - 1
      'çàìåíÿåì ïóòóþ ÿ÷åéêó çíà÷åíèÿ ñå÷åíèÿ ñ 0 íà 1 ÷òîáû íå äåëèòü íà 0
      l = Worksheets("ðàñ÷åò").Cells(35, m).Value
      k = Worksheets("ðàñ÷åò").Cells(44, m).Value
      If l = 0 Then
      Worksheets("ðàñ÷åò").Cells(35, m).Value = 1
      End If
      If k = 0 Then
      Worksheets("ðàñ÷åò").Cells(44, m).Value = 1
      End If
      'ïîäñòàíîâêà çíà÷åíèÿ óäåëüíîãî ñîïðîòèâëåíèÿ
      p = Worksheets("ìàêðîñ").Cells(11, 4).Value
      If p = 1 Then
      Worksheets("ðàñ÷åò").Cells(33, m).Value = 0.018
      Worksheets("ðàñ÷åò").Cells(42, m).Value = 0.018
      End If
      If p = 2 Then
      Worksheets("ðàñ÷åò").Cells(33, m).Value = 0.03
      Worksheets("ðàñ÷åò").Cells(42, m).Value = 0.03
      End If
      If p = 3 Then
      Worksheets("ðàñ÷åò").Cells(33, m).Value = Worksheets("ðàñ÷åò").Cells(18, 2).Value
      Worksheets("ðàñ÷åò").Cells(42, m).Value = Worksheets("ðàñ÷åò").Cells(18, 2).Value
      End If
      r = Worksheets("ðàñ÷åò").Cells(32, e).Value
      f = Worksheets("ðàñ÷åò").Cells(41, e).Value
      ÐàñïðåäÁåçÏîäóðîâíÿ(3, 1) = "p"
      ÐàñïðåäÁåçÏîäóðîâíÿ(3, 2) = "l"
      ÐàñïðåäÁåçÏîäóðîâíÿ(3, 3) = "S"
      ÐàñïðåäÁåçÏîäóðîâíÿ(3, 4) = "Ií/Iò"
      ÐàñïðåäÁåçÏîäóðîâíÿ(3, 5) = "Ràâ"
      ÐàñïðåäÁåçÏîäóðîâíÿ(3, 6) = "Rêñ"
      ÐàñïðåäÁåçÏîäóðîâíÿ(4, 1) = "Îì·ìì^2/ì"
      ÐàñïðåäÁåçÏîäóðîâíÿ(4, 2) = "ì"
      ÐàñïðåäÁåçÏîäóðîâíÿ(4, 3) = "ìì^2"
      ÐàñïðåäÁåçÏîäóðîâíÿ(4, 4) = "A"
      ÐàñïðåäÁåçÏîäóðîâíÿ(4, 5) = "ìÎì"
      ÐàñïðåäÁåçÏîäóðîâíÿ(4, 6) = "ìÎì"
      ÐàñïðåäÁåçÏîäóðîâíÿ(5, 1) = "p"
      ÐàñïðåäÁåçÏîäóðîâíÿ(5, 2) = "l"
      ÐàñïðåäÁåçÏîäóðîâíÿ(5, 3) = "S"
      ÐàñïðåäÁåçÏîäóðîâíÿ(5, 4) = "Ií/Iò"
      ÐàñïðåäÁåçÏîäóðîâíÿ(5, 5) = "Ràâ"
      ÐàñïðåäÁåçÏîäóðîâíÿ(5, 6) = "Rêñ"
      ÐàñïðåäÁåçÏîäóðîâíÿ(6, 1) = "Îì·ìì^2/ì"
      ÐàñïðåäÁåçÏîäóðîâíÿ(6, 2) = "ì"
      ÐàñïðåäÁåçÏîäóðîâíÿ(6, 3) = "ìì^2"
      ÐàñïðåäÁåçÏîäóðîâíÿ(6, 4) = "A"
      ÐàñïðåäÁåçÏîäóðîâíÿ(6, 5) = "ìÎì"
      ÐàñïðåäÁåçÏîäóðîâíÿ(6, 6) = "ìÎì"
      Sheets("ðàñ÷åò").Cells(33, e) = ÐàñïðåäÁåçÏîäóðîâíÿ(3, 1)
      Sheets("ðàñ÷åò").Cells(34, e) = ÐàñïðåäÁåçÏîäóðîâíÿ(3, 2)
      Sheets("ðàñ÷åò").Cells(35, e) = ÐàñïðåäÁåçÏîäóðîâíÿ(3, 3)
      Sheets("ðàñ÷åò").Cells(36, e) = ÐàñïðåäÁåçÏîäóðîâíÿ(3, 4)
      Sheets("ðàñ÷åò").Cells(37, e) = ÐàñïðåäÁåçÏîäóðîâíÿ(3, 5)
      Sheets("ðàñ÷åò").Cells(38, e) = ÐàñïðåäÁåçÏîäóðîâíÿ(3, 6)
      Sheets("ðàñ÷åò").Cells(33, d) = ÐàñïðåäÁåçÏîäóðîâíÿ(4, 1)
      Sheets("ðàñ÷åò").Cells(34, d) = ÐàñïðåäÁåçÏîäóðîâíÿ(4, 2)
      Sheets("ðàñ÷åò").Cells(35, d) = ÐàñïðåäÁåçÏîäóðîâíÿ(4, 3)
      Sheets("ðàñ÷åò").Cells(36, d) = ÐàñïðåäÁåçÏîäóðîâíÿ(4, 4)
      Sheets("ðàñ÷åò").Cells(37, d) = ÐàñïðåäÁåçÏîäóðîâíÿ(4, 5)
      Sheets("ðàñ÷åò").Cells(38, d) = ÐàñïðåäÁåçÏîäóðîâíÿ(4, 6)
      Sheets("ðàñ÷åò").Cells(42, e) = ÐàñïðåäÁåçÏîäóðîâíÿ(5, 1)
      Sheets("ðàñ÷åò").Cells(43, e) = ÐàñïðåäÁåçÏîäóðîâíÿ(5, 2)
      Sheets("ðàñ÷åò").Cells(44, e) = ÐàñïðåäÁåçÏîäóðîâíÿ(5, 3)
      Sheets("ðàñ÷åò").Cells(45, e) = ÐàñïðåäÁåçÏîäóðîâíÿ(5, 4)
      Sheets("ðàñ÷åò").Cells(46, e) = ÐàñïðåäÁåçÏîäóðîâíÿ(5, 5)
      Sheets("ðàñ÷åò").Cells(47, e) = ÐàñïðåäÁåçÏîäóðîâíÿ(5, 6)
      Sheets("ðàñ÷åò").Cells(42, d) = ÐàñïðåäÁåçÏîäóðîâíÿ(6, 1)
      Sheets("ðàñ÷åò").Cells(43, d) = ÐàñïðåäÁåçÏîäóðîâíÿ(6, 2)
      Sheets("ðàñ÷åò").Cells(44, d) = ÐàñïðåäÁåçÏîäóðîâíÿ(6, 3)
      Sheets("ðàñ÷åò").Cells(45, d) = ÐàñïðåäÁåçÏîäóðîâíÿ(6, 4)
      Sheets("ðàñ÷åò").Cells(46, d) = ÐàñïðåäÁåçÏîäóðîâíÿ(6, 5)
      Sheets("ðàñ÷åò").Cells(47, d) = ÐàñïðåäÁåçÏîäóðîâíÿ(6, 6)
      If r = "" Then
      Worksheets("ðàñ÷åò").Cells(32, e).Value = "Íàçâàíèå ó÷àñòêà öåïè"
      End If
      If f = "" Then
      Worksheets("ðàñ÷åò").Cells(41, e).Value = "Íàçâàíèå ó÷àñòêà öåïè"
      End If
      Next
      If b = "" Then
      Sheets("ðàñ÷åò").Cells(32, g).Clear
      Sheets("ðàñ÷åò").Cells(33, o).Clear
      Sheets("ðàñ÷åò").Cells(35, o).Clear
      Sheets("ðàñ÷åò").Cells(39, o).Clear
      Sheets("ðàñ÷åò").Cells(41, g).Clear
      Sheets("ðàñ÷åò").Cells(42, o).Clear
      Sheets("ðàñ÷åò").Cells(44, o).Clear
      Sheets("ðàñ÷åò").Cells(48, o).Clear
      End If
      Next
      Application.ScreenUpdating = True
      MsgBox "òàáëèöû ïîñòðîåíû"
      End Sub

    • @kokoasdad8361
      @kokoasdad8361 7 років тому

      Private Sub Ðàñ÷åò_Ñîïðîòèâëåíèÿ_Ñðåäíåãî_Óðîâíÿ_Click()
      Dim r(1 To 2, 1 To 2) As Variant
      Dim q, a, z, w, s, x, e, d, c, f, v As Integer
      z = Sheets("ìàêðîñ").Cells(1, 5)
      e = Sheets("ìàêðîñ").Cells(2, 5)
      For w = 1 To z
      s = 4 * w - 2
      x = 4 * w
      d = 4 * w - 1
      r(1, 1) = "R"
      r(1, 2) = "ìÎì"
      Sheets("ðàñ÷åò").Cells(29, s) = r(1, 1)
      Sheets("ðàñ÷åò").Cells(29, x) = r(1, 2)
      Worksheets("ðàñ÷åò").Cells(29, d).Value = Worksheets("ðàñ÷åò").Cells(23, d).Value * Worksheets("ðàñ÷åò").Cells(24, d).Value * 1000 / Worksheets("ðàñ÷åò").Cells(25, d).Value
      'ïîìå÷àåì ÿ÷åéêó ãäå ñå÷åíèå ðàâíî 1, ò.å âîçìîæíî çàáûëè óêàçàòü
      c = Worksheets("ðàñ÷åò").Cells(25, d).Value
      If c = 1 Then
      Sheets("ðàñ÷åò").Cells(25, d).Interior.Color = ColorConstants.vbRed
      Else
      Sheets("ðàñ÷åò").Cells(25, d).Interior.Color = ColorConstants.vbWhite
      End If
      Next
      For w = 1 To e
      s = 4 * w - 2
      x = 4 * w
      d = 4 * w - 1
      r(1, 1) = "R"
      r(1, 2) = "ìÎì"
      Sheets("ðàñ÷åò").Cells(39, s) = r(1, 1)
      Sheets("ðàñ÷åò").Cells(39, x) = r(1, 2)
      Sheets("ðàñ÷åò").Cells(48, s) = r(1, 1)
      Sheets("ðàñ÷åò").Cells(48, x) = r(1, 2)
      Worksheets("ðàñ÷åò").Cells(39, d).Value = Worksheets("ðàñ÷åò").Cells(33, d).Value * Worksheets("ðàñ÷åò").Cells(34, d).Value * 1000 / Worksheets("ðàñ÷åò").Cells(35, d).Value
      Worksheets("ðàñ÷åò").Cells(48, d).Value = Worksheets("ðàñ÷åò").Cells(42, d).Value * Worksheets("ðàñ÷åò").Cells(43, d).Value * 1000 / Worksheets("ðàñ÷åò").Cells(44, d).Value
      'ïîìå÷àåì ÿ÷åéêó ãäå ñå÷åíèå ðàâíî 1, ò.å âîçìîæíî çàáûëè óêàçàòü
      v = Worksheets("ðàñ÷åò").Cells(35, d).Value
      f = Worksheets("ðàñ÷åò").Cells(44, d).Value
      If v = 1 Then
      Sheets("ðàñ÷åò").Cells(35, d).Interior.Color = ColorConstants.vbRed
      Else
      Sheets("ðàñ÷åò").Cells(35, d).Interior.Color = ColorConstants.vbWhite
      End If
      If f = 1 Then
      Sheets("ðàñ÷åò").Cells(44, d).Interior.Color = ColorConstants.vbRed
      Else
      Sheets("ðàñ÷åò").Cells(44, d).Interior.Color = ColorConstants.vbWhite
      End If
      Next
      Application.ScreenUpdating = True
      Interaction.MsgBox "Ñîïðîòèâëåíèå ïîñ÷èòàíî", vbDefaultButton1, "Ðàñ÷åò ñîïðîòèâëåíèÿ âåðõíåãî óðîâíÿ"
      End Sub

    • @kokoasdad8361
      @kokoasdad8361 7 років тому

      если что отпишусь) (не от канала конечно))))

  • @дядюшкаФунтик-ъ5л
    @дядюшкаФунтик-ъ5л 2 роки тому

    Да, с английским как то не очень ))) HELLO

  • @АлексейГулькин-э1и
    @АлексейГулькин-э1и 6 років тому

    Блин, мне вообще ничего непонятно. Очень спутанно, без объяснения основных понятий и зачем это все вообще надо, а примеры меня еще больше запутывают.

    • @rusrc
      @rusrc  6 років тому

      Вы начали сразу с 10 ого урока? Может быть в первых уроках проще будет. Если совсем непонятно, то скорее всего вам нужно начать с академических основ т.е. например, понять суть алгоритмов, сортировок, устройство регистров и т.п.

  • @smallbugsy
    @smallbugsy 7 років тому +3

    Что за "Hellow"? Есть слово "Hello".