Замените вашу строку следующим образом:
Set RankValue = Sheets(1).Range("D2:D" & LastRow)
Часть ("D2:D" & LastRow)
создает адрес, как D2: D45. &
означает конкатенацию
Добавлено после комментариев
Если вы поставите это перед ошибочным утверждением, вы поймете больше:
Debug.Print "D2:D" & LastRow
Set RankValue = Sheets(1).Range("D2:D" & LastRow)
Нажмите Ctrl + G, чтобы открыть окно отладки. Он напечатает значение "D2:D" & LastRow
, которое, как ожидается, будет диапазоном. Если LastRow пуст или содержит строковое значение, ваш диапазон обычно будет недействительным.
После дальнейших раскопок я нашел два проекта, которые кажутся достаточно зрелыми: IWOR и RealTimeBattle , обе из которых основаны на простых системах обмена сообщениями для роботов для связи с сервером, который контролирует сражение.
Это означает, что вы можете реализовать робота на любом языке, который захотите, до тех пор, пока это возможно. поддержка сокетов (для IWOR) или stdin / stdout (для RTB).
Прокси Дизайн шаблона, я думаю. Это глупый вопрос, хотя (не отражение на Асине, а на человека, который спросил его в интервью на работе). Возможно, человек, спрашивающий, не осознавал, что строка является окончательной? В противном случае я не могу думать, почему они бы даже спросили.
-121--3224998-Робокод станет. Сетка включена в ближайшее время. И есть хороший потенциал для других языков для JVM.