Ошибка 1004 при обращении к указанным c ячейкам в пределах определенного диапазона - PullRequest
0 голосов
/ 16 апреля 2020

Отредактировано, чтобы добавить решение: я пытался сделать Sumproduct, и я большой тупой хаха

Я пытаюсь сделать довольно простой расчет в VBA, где мне нужно l oop через два диапазона и умножьте указанные c ячейки, затем добавьте значение к значению-заполнителю.

Код:

Dim Input_Cas As Range
    Set Input_Cas = Worksheets("Calculations").Range("A2:A51")
Dim Input_Conc As Range
    Set Input_Conc = Worksheets("Calculations").Range("C2:C51")
    i = 1
Do Until IsEmpty(Range("Input_Cas")(i)) = True
    Tkm = Tkm + Range("Input_Tki")(i) * (Range("Input_Conc")(i) / 100)
    i = i + 1
Loop
Mix_Tkm = Tkm
  • Диапазоны, определенные как Input_Con c, Input_Tki, Input_Cas все находятся в активном листе и Dim / Set в коде над этим блоком.
  • Ткм - двойной, а Mix_Tkm - также диапазон Dim / Set.

  • Ошибка 1004 вылетает в первой строке Do Until ... Loop.

Поскольку синтаксис не кажется вызывающим какие-либо проблемы в IsEmpty(Range("Input_Cas")(i)) = True Я не уверен, почему тот же синтаксис не работает под ним , Все ячейки, на которые есть ссылки, также содержат числовые значения, на всякий случай, если это уместно.

Я люблю вас, замечательные люди, и заранее благодарю за вашу помощь.

Редактировать: Dim/Set для диапазонов являются

Dim Input_Cas As Range
        Set Input_Cas = Worksheets("Calculations").Range("A2:A51")
Dim Input_Conc As Range
        Set Input_Conc = Worksheets("Calculations").Range("C2:C51")
Dim Input_Tki As Range
        Set Input_Tki = Worksheets("Calculations").Range("G2:G51")

1 Ответ

0 голосов
/ 16 апреля 2020

Как и предполагалось, я публикую ответ для себя для людей из будущего.

Я пытался воссоздать функцию Sumproduct из Excel в VBA, выполнив al oop. То, что я пытался сделать, было сделано более эффективно в Excel. Я не знал, что Sumproduct - вещь, и она делает именно то, что я пытался.

Спасибо Бигбену за предоставление решения, которое я не смог найти для себя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...