Я в настоящее время стажер на лето, новенький для VBA (только что забрал его 6/29/19), и я пытаюсь создать Отчет о старении заказов для наглядности в моей компании. Проблема заключается в том, что независимо от того, сколько вариантов кода я пробую (я приложу несколько примеров), я либо сталкиваюсь с ошибкой несоответствия типов, либо код выполняется без проблем, но не вводит вычисленные значения в ячейки в этот диапазон. Я не спрашиваю, решили ли ресурсы, которые я уже пробовал, проблему, и я готов признать, что это, скорее всего, довольно фундаментальная ошибка. В StackOverflow я не нашел ни одной публикации, которая бы решала мою конкретную проблему. Я просто очень новичок в этом и вообще программирую (я только что выбрал Python несколько месяцев назад для Data Science). Может ли кто-нибудь помочь мне с указанием (а не решением) правильного решения? Это похоже на очень простое решение, и я бью себя, потому что до сих пор не могу понять.
Я попытался преобразовать значение последней строки в строку, чтобы она была совместима с диапазоном, с которым я пытаюсь его объединить, это приводит только к ошибке несоответствия типов.
Я пробовал метод конкатенации с этим форматом: Range ("C2" и LR), и именно здесь возникает проблема с кодом, выполняющимся, но не возвращающим значений.
Я попытался определить счетчик для строк, а затем распечатать его значение в ячейке за пределами моей таблицы и использовать его как часть вычисления.
Я пробовал цикл For Each в каждом столбце и использовал значения, введенные в поля ввода, в качестве значений, вводимых для каждой ячейки. Это сработало, но оно просто замораживало мой Excel каждый раз при запуске.
Я попытался использовать произвольно выбранное число, которое больше таблицы, и это сработало. Но по понятным причинам это не то решение, которое я хочу. Это просто лень и не дает никакой учебной ценности, ха-ха.
Я надеюсь, что этот фон не слишком ограничивает, и я хочу заранее поблагодарить всех за совет!
Вот текущий код, который я использую:
Sub FillWeeknDay()
Dim lRow As Long
Dim LR As String
lRow = Cells(Rows.Count, 1).End(xlUp).Row
LR = lRow
Dim Week As Variant
Week = InputBox("What week is this OOR being made in?")
Range("C2:C" & LR).value = Week
Dim Day As Variant
Day = InputBox("Are you creating this report on Monday, Wednesday, or Friday?")
Range("D2:D" & LR).value = Day
End Sub
Ожидаемый результат состоит в том, что значения, введенные в поля ввода, будут вводиться в ячейки диапазона вплоть до последней строки в этом столбце. Фактический результат - либо вообще ничего, либо ошибка несоответствия типов, о которой я упоминал.