Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
3 / 2 / 1
Регистрация: 13.05.2014
Сообщений: 156
1

Как программно протянуть ВПР по столбцу, чтобы высота этого столбца равнялась высоте другого?

08.08.2014, 12:19. Показов 2134. Ответов 11
Метки нет (Все метки)

Всем привет!

Опять у меня возник затык... суть в том что нужно сделать две переменные, но одна из них зависит от другой... порыскал по книге как это сделать, понял что нужно одну из переменных объявить как public, однако, не нашёл как это сделать гугление тоже ничего дельного не дало...
кривокод ниже:
Visual Basic
1
2
3
4
5
6
7
Dim NextRow1 As Long
NextRow1 = Range("e65536").End(xlUp).Row + 1
Cells(NextRow1, 5).Select
 
Dim zap As Long
zap = Sheets("Лист2").Range("nextrow1").CurrentRegion.Rows.Count
Range("nextrow1").AutoFill Destination:=Range("nextrow1:e" & zap), Type:=xlFillDefault
суть кода: код вычисляет последнюю заполненную ячейку по столбцу Е и выделяет её, в ней будет прописан ВПР, затем этот ВПР протягивается вниз до последней заполненной ячейки по столбцу А.

Заранее спасибо.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.08.2014, 12:19
Ответы с готовыми решениями:

Vba протянуть формулу по столбцу С до последней ячейки по столбцу D
всем доброго времени суток Уважаемые профи,подскажите,пожалуйста, такой вопрос: в ячейке С1...

Как протянуть формулу, ориентируясь на количество строк левого столбца
Такая проблема, есть столбец А, в него начиная с А2 поступают данные, в В2 вписана формула, которую...

Как протянуть данные, чтобы получить ответ
Добрый день, помогите, пожалуйста. В Колонке G есть ответ, который вычисляет среднее значение из...

ВПР, ЕСЛИ. Как для выбора номера столбца в функции ВПР для региона использовать функцию ЕСЛИ()
Здравствуйте. Не могу написать формулу так, чтобы ВПР брала % прироста из обоих столбцов "Восток и...

11
6861 / 2795 / 530
Регистрация: 19.10.2012
Сообщений: 8,530
08.08.2014, 12:35 2
Бррр...
Лучше бы файл показали. Лучше специально сделанный - не нужны мегабайты данных.
Вообще проблемы нет - нашли одну последнюю ячейку, нашли вторую, протянули от одной строки до второй. И без никаких выделений...
Думаю весь код может быть в одной строке и без всяких переменных.
0
3 / 2 / 1
Регистрация: 13.05.2014
Сообщений: 156
08.08.2014, 12:38  [ТС] 3
логично, но чё-т я не совсем понимаю как протянуть от последней до первой... как это прописать... всё равно получаются две переменные пересекающиеся..
0
3 / 2 / 1
Регистрация: 13.05.2014
Сообщений: 156
08.08.2014, 12:45  [ТС] 4
простейший пример файлаЛист Microsoft Office Excel (4).xlsx
0
6861 / 2795 / 530
Регистрация: 19.10.2012
Сообщений: 8,530
08.08.2014, 13:12 5
Visual Basic
1
Cells(Rows.Count, "E").End(xlUp).AutoFill Destination:=Range(Cells(Rows.Count, "E").End(xlUp), Cells(Range("A" & Rows.Count).End(xlUp).Row, 5)), Type:=xlFillDefault
с переменными конечно можно покороче/попонятнее написать, но я обещал одну строку
1
3 / 2 / 1
Регистрация: 13.05.2014
Сообщений: 156
08.08.2014, 13:24  [ТС] 6
чё-т всё оказалось проще, чем я думал...
но всё-таки как записать зависимые переменные (чтоб потом не плодить тем)?
0
6861 / 2795 / 530
Регистрация: 19.10.2012
Сообщений: 8,530
08.08.2014, 13:41 7
Я не понимаю что Вы подразумеваете под понятием "зависимые".
0
3 / 2 / 1
Регистрация: 13.05.2014
Сообщений: 156
08.08.2014, 13:45  [ТС] 8
на коде объясню:
nextrow1 - переменная (последняя заполненная ячейка с низу)
zap - переменная
Visual Basic
1
2
3
Dim zap As Long
zap = Sheets("Лист2").Range("nextrow1").CurrentRegion.Rows.Count
Range("nextrow1").AutoFill Destination:=Range("nextrow1:e" & zap), Type:=xlFillDefault
0
Заблокирован
08.08.2014, 13:53 9
Цитата Сообщение от GIKS Посмотреть сообщение
Dim NextRow1 As Long
Цитата Сообщение от GIKS Посмотреть сообщение
nextrow1 - переменная (последняя заполненная ячейка с низу)
Basic - регистронезависимый язык, т.е. NextRow1 = nextrow1 ,
т.о. число типа Long никак не может быть последняя заполненная ячейка с низу).
А имя переменной в кавычках - это вообще не переменная, а строковый литерал, никакого отношения к переменной не имеющий.
Учите матчасть, короче.
0
6861 / 2795 / 530
Регистрация: 19.10.2012
Сообщений: 8,530
08.08.2014, 13:54 10
Range("nextrow1") и переменная nextrow1 никак не связанные вещи. Хотя можно конечно писать иначе и связь будет.
Но смысл понятен - переменная zap нужна только для облечения кода, без неё можно обойтись. Т.е. связи особой нет.

Если же нужно например иметь две переменных, и чтоб одна автоматически возвращала значение в два раза больше, чем сейчас в другой - то зачем вообще эта "одна" нужна, достаточно "другой"
0
3 / 2 / 1
Регистрация: 13.05.2014
Сообщений: 156
08.08.2014, 14:00  [ТС] 11
спс, понял в чём я затупил... буду экспериментировать дальше...
0
5454 / 1483 / 365
Регистрация: 23.12.2010
Сообщений: 2,225
Записей в блоге: 1
08.08.2014, 15:06 12
Перевод на VBA:
Visual Basic
1
2
3
4
5
6
Dim zap As Long, nextrow1 As Range
With Sheets("Лист2")
 Set nextrow1 = .Cells(.Rows.Count, "A").End(xlUp)
 zap = nextrow1.CurrentRegion.Rows.Count
 nextrow1.AutoFill Destination:=Range(nextrow1, .Range("e" & zap)), Type:=xlFillDefault
End With
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.08.2014, 15:06

Как в Excel протянуть формулу по горизонтали, чтобы она работала
Здравствуйте! Файл во вложении. Копированием или протягиванием не получается.Приходится каждую...

Найти среднее арифметическое этого столбца и отнять его из всех елементов матрицы, кроме этого столбца
В матрице имеется столбец в котором первый элемент больше последнего. Найти среднее арифметическое...

Как программно присвоить свойство ReadOnly столбцу DGV
Среда Visual Basic STUDIO’2010 Professional ' To make a column read-only programmatically -...

Высота скролла по высоте окна
Здравствуйте, народ! Нужно решить проблему с высотой скролла. Оно должно меняться по высоте...

Высота элемента по высоте экрана
Прошу помощи, уже весь мозг сломал, код такой: var gerter = $("html").height();...

Высота блоков по высоте родителя
Добрый день! Столкнулся с проблемой - есть контейнер, в котором 3 блока разной высоты, выглядит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru