fromRange
- это всегда диапазон одной ячейки, а hyperlink.Range
может относиться к нескольким ячейкам.Несоответствие здесь с вашим сравнением:
if hyperlink.range = fromRange
Когда Range
представляет отдельную ячейку, оно по умолчанию оценивается в свое свойство Value
(фактическая реализация немного сложнее), иэто вернет базовые данные (строка, число, дата и т. д.).Когда Range
представляет несколько ячеек, его Value
является массивом отдельных значений ячеек.
Таким образом, вы можете ожидать несоответствия в результате, потому что у вас есть массив вслева и еще что-то справа.Оператор сравнения =
не может обрабатывать массив с обеих сторон.Попробуйте:
If Range("A1:B1") = Range("C1:D1") Then
Приведенное выше также приведет к ошибке несоответствия, даже если обе стороны =
являются массивами одинакового размера!
Возможно, вы захотите сравнитьAddress
свойство вместо?
hyperlink.range.Address = fromRange.Address
или
' tests the top/left cell
hyperlink.range(1,1).Address = fromRange.Address