Линия по горизонтальным координатам таблицы - в которой числа могут быть как введены, так и образованы формулой - VBA

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

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

Помогите с макросом. Имеющийся макрос - расставляет узлы полилинии - так как они представлены в таблице - по порядку. Но тут есть нюанс - макрос чувствителен к способу ввода исходных данных. В настоящий момент макрос использует только числа в ячейках - которые образованы формулой. Если макрос встретит в исходных данных числа, которые образованы простым вводом - то выдаст ошибку. Сейчас в коде макроса - стоит отметка: xlCellTypeFormulas А чтобы макрос воспринимал ячейки - где числа просто введены - нужно заменить эту отметку на xlCellTypeConstants Вопрос - как научить макрос воспринимать оба вида ввода значения - как простым вводом, так и формульным вводом ? (Чтобы не открывать каждый раз vba-браузер меняя вручную тип исходных данных.)

Решение задачи: «Линия по горизонтальным координатам таблицы - в которой числа могут быть как введены, так и образованы формулой»

textual
Листинг программы
Sub Вариант_2()
    Dim i&, k&, j&
    k = 1
    b = ActiveSheet.UsedRange.Rows("2:3")
Nach:
    For j = k To UBound(b, 2)
        If Not IsEmpty(b(1, j)) And IsNumeric(b(1, j)) Then k = j: Exit For
    Next
    If Not IsEmpty(b(1, k + 1)) And IsNumeric(b(1, k + 1)) Then
        With ActiveSheet.Shapes.BuildFreeform(msoEditingAuto, b(1, k), b(2, k))
            For i = k + 1 To UBound(b, 2)
                .AddNodes msoSegmentLine, msoEditingAuto, b(1, i), b(2, i)
                If i = UBound(b, 2) Then k = i: Exit For
                If IsEmpty(b(1, i + 1)) Then k = i + 1: Exit For
            Next
            .ConvertToShape
            If k < UBound(b, 2) Then GoTo Nach
        End With
    End If
End Sub

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


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

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

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