В настоящее время я пытаюсь извлечь определенные данные из книги, чтобы поместить в другую книгу. У меня есть рабочая книга, чтобы открыть с помощьюНевозможно получить диапазон рабочего листа excel
Application.GetOpenFile
, а затем присвоить это книге. Затем я назначаю лист активной рабочей таблице из этой книги.
Моя проблема связана с попыткой получить диапазон рабочего листа. Я использую массив строк (как
columnLetter(0) = "A"
columnLetter(1) = "B"
и так далее, чтобы попытаться проверить через все столбцы для определенных строк (которые перечислены в заявлении, если с тонной «или» с. специфические строк варьируется от файла к файлу, так что мой план был поиск первой строки, затем второй строки, и т.д., пока не находит одну из строк Итак, я использую это:.
lastRow = brokerSheet.Range(columnLetter(i) & Rows.Count).End(xlUp).Row
чтобы получить количество строк в этом столбце. Когда я запускаю программу, я получаю ошибку
Method 'Range' of object '_Worksheet' failed
сверху эта линия. Я предполагаю, что это потому, что я пытаюсь использовать
columnLetter(i)
, который имеет через R, возложенные на него, вместо «A» или что-то подобное для имени столбца. Однако я попытался использовать 1, 2, 3 и т. Д. Для представления первого столбца, второго столбца, третьего столбца ... но это не сработало. На листе всего около 90 строк (хотя некоторые из них будут иметь 400, как только я получу эту работу). Есть ли другой способ сделать это? Я мог бы написать «A» «B» «C» и т. Д. Для всех из них, но должен быть лучший способ указать, какой столбец проверить, чем это.
каких расширения ваших обоих файлов? Есть ли один с расширением 'xls' (excel 2003)? Попробуйте использовать 'lastRow = brokerSheet.Range (columnLetter (i) & brokerSheet.Rows.Count) .End (xlUp) .Row' –
Да, это' xls'. Пробовал это, получив ту же проблему. Я понял, что это было с 'columnLetter (i)'. – PointXIV
попробуйте использовать 'lastRow = brokerSheet.Range (« A »& brokerSheet.Rows.Count) .End (xlUp) .Row'. Будет ли это работать? –