Получение значений с другого листа в Excel с помощью VBA
Здравствуйте, я новичок в excel, и у меня есть некоторые проблемы, чтобы получить значения из других листов.
У меня есть некоторые значения в excel (sheet2), например:
A B C D
- - - -
1 | 2 5 9 12
2 | 5 8 4 5
3 | 3 1 2 6
Я работаю с этими значениями в sheet2, и я хочу получить результат в sheet1. Когда я использую свой код в sheet2, я получаю правильный ответ, но когда я пытаюсь использовать его в другом листе, я получаю результат значений, соответствующих текущим ячейкам листа, а не sheet2.
- я хочу получить сумму каждого столбца в строке 4. и мне это удается, но я могу использовать его только в sheet2.
Im using " With Application.WorksheetFunction" и я хочу изменить это, чтобы получить значения из sheet2.
Не могли бы вы помочь мне с этим и как установить sheet2 в качестве активирующего листа.
Я надеюсь, что мой вопрос ясен.
Спасибо
5 ответов:
Попробуйте
ThisWorkbook.Sheets("name of sheet 2").Range("A1")
Для доступа к диапазону на листе 2 независимо от того, где находится ваш код или какой лист в данный момент активен. Чтобы сделать лист 2 активным, попробуйте
ThisWorkbook.Sheets("name of sheet 2").Activate
Если вам просто нужна сумма строки в другом листе, нет никакой необходимости использовать VBA вообще. Введите следующую формулу на листе 1:
=SUM([Name-Of-Sheet2]!A1:D1)
Это будет (для вас очень конкретный пример)
ActiveWorkbook.worksheets("Sheet2").cells(aRow,aCol).Value=someval
Или
someVal=ActiveWorkbook.worksheets("Sheet2").cells(aRow,aCol).Value
Итак, получаем F1 щелчок и читаем о коллекции листов, которая содержит объекты листов, которая в свою очередь имеет коллекцию ячеек, содержащую объекты ячеек...
Sub TEST() Dim value1 As String Dim value2 As String value1 = ThisWorkbook.Sheets(1).Range("A1").Value 'value from sheet1 value2 = ThisWorkbook.Sheets(2).Range("A1").Value 'value from sheet2 If value1 = value2 Then ThisWorkbook.Sheets(2).Range("L1").Value = value1 'or 2 End Sub
Это позволит сравнить значения ячеек двух листов и, если они совпадают, поместить значение на листе 2 в колонку L.