outputcolumn
- это числовое значение (вы определили его как Integer
, но вы всегда должны определять переменные, содержащие номера строк или столбцов как long
, чтобы избежать ошибок переполнения).
Допустим, outputcolumn
получает число 2
(столбец B
).Вы пишете Sheet1.Range(outputcolumn & "4")
.Чтобы получить доступ к диапазону по его адресу, вам нужно написать что-то вроде Range("B4")
, но вы пишете Range(2 & "4")
, что означает Range("24")
, и это неверный адрес для Range
.
Вы можете попытаться перевести номер столбца 2
в B
, но есть более простой способ доступа к ячейке, если вы знаете номер строки и столбца: просто используйте свойство cells
:
If Sheet1.Cells(4, outputcolumn).Offset(0, 1).Value = "" Then
' (or)
If Sheet1.Cells(4, outputcolumn+1).Value = "" Then
Просто обратите внимание, что порядок параметров - строка, столбец.