Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2018, 17:26   #1
СтаСС
Пользователь
 
Регистрация: 12.02.2017
Сообщений: 87
По умолчанию Изменить часть кода

Никак не могу изменить часть кода в макросе где на листе берется для копирования последняя строка в диапазоне до WSJ а надо скопировать всю строку целиком.. а во втором макросе тот же код поменять чтоб копировал не первую, а третью снизу строку

Код:
With Sheets("FORM-1")
Range(.Range("A" & .Rows.Count).End(x1Up), .Range("WSJ" & Rows.Count).End(x1Up)).Copy
End With
Это почти из серии: не знал, не знал и забыл.. а метод "тыка" увы не помогает..
СтаСС вне форума Ответить с цитированием
Старый 26.03.2018, 18:20   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

В гугла " vba excel copy entire row" спрашивали ведь?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 26.03.2018, 18:36   #3
СтаСС
Пользователь
 
Регистрация: 12.02.2017
Сообщений: 87
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
В гугла
Как копировать строку целиком я в общих чертах представляю.. а вот связать с "последней" невыходит... точно так же с заменой на 3-ю снизу... знаю что вроде кудато надо минус 2 впихнуть )) а вот куда...
СтаСС вне форума Ответить с цитированием
Старый 26.03.2018, 20:38   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Гугл по запросу "vba excel copy entire last row" ввашпе ничего не говорит?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 26.03.2018, 22:30   #5
СтаСС
Пользователь
 
Регистрация: 12.02.2017
Сообщений: 87
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
"vba excel copy entire last row"
Такое впечатление что я обратился в гугл переводчик.. и теперь знаю как по-английски звучит моя проблема.. сорри просто вы второй раз отправляете меня в гугл.. поверте я полдня убил прежде чем сюда написать... ну-да ладно проехали..
СтаСС вне форума Ответить с цитированием
Старый 27.03.2018, 01:41   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

хотите получить ответ на свой вопрос? - потрудитесь описать задачу, которую Вы решаете, а не метод, которым Вы пытаетесь ее решить
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 27.03.2018, 02:32   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Из Вашего описания не совсем понятно, что требуется. Скопировать только эту строку, или диапазон строк от ячейки "A1" до последней заполненной строки в диапазоне столбцов "A:WSJ"?
1. Для строки:
1.1 Если неизвестно какой из столбцов "длиннее", то можно использовать
Код:
With Sheets("FORM-1")
    .[A:WSJ].Find("*", .[A1], , , xlByRows, xlPrevious).EntireRow.Copy
End With
Для третьей с конца строки:
Код:
With Sheets("FORM-1")
    .[A:WSJ].Find("*", .[A1], , , xlByRows, xlPrevious).Offset(-2).EntireRow.Copy
End With
1.2 Если последнюю заполненную строку можно определить, например, по последней заполненной ячейке в столбце "A", то так:
Код:
Sheets("FORM-1").Cells(Rows.Count, 1).End(xlUp).EntireRow.Copy
Для третьей с конца строки:
Код:
Sheets("FORM-1").Cells(Rows.Count, 1).End(xlUp).Offset(-2).EntireRow.Copy
2. Для диапазона ячеек от ячейки "A1" до последней заполненной строки в диапазоне столбцов "A:WSJ"
2.1 Если неизвестно какой из столбцов "длиннее", то можно использовать
Код:
With Sheets("FORM-1")
    .Range(.[A1], .Cells(.[A:WSJ].Find("*", .[A1], , , xlByRows, xlPrevious).Row, "WSJ")).Copy
End With
Для третьей с конца строки:
Код:
With Sheets("FORM-1")
    .Range(.[A1], .Cells(.[A:WSJ].Find("*", .[A1], , , xlByRows, xlPrevious).Row - 2, "WSJ")).Copy
End With
2.2 Если последнюю заполненную строку можно определить, например, по последней заполненной ячейке в столбце "A", то так:
Код:
With Sheets("FORM-1")
    .Range("A1:WSJ" & .Cells(Rows.Count, 1).End(xlUp).Row).Copy
End With
Для третьей с конца строки:
Код:
With Sheets("FORM-1")
    .Range("A1:WSJ" & .Cells(Rows.Count, 1).End(xlUp).Row - 2).Copy
End With
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 27.03.2018 в 05:00.
SAS888 вне форума Ответить с цитированием
Старый 27.03.2018, 11:30   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Сергей, это зачетный пост)))

но судя по молчанию ТС возможны варианты:
1. не угадал ни разу
2. угадал, но ТС еще не проверил рабочую комбинацию
3. ТС в шоке и ответит не скоро
4. жизнь многообразна и полна сюрпризов - можно продолжать генерировать варианты решения
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 27.03.2018, 11:41   #9
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
...возможны варианты...
Согласен. Но, невозможно забить гол, если вовсе не бить по воротам. Чем больше вариантов охвачено, тем выше вероятность "гола", при остальных промахах и попаданий в штангу.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 27.03.2018, 17:14   #10
СтаСС
Пользователь
 
Регистрация: 12.02.2017
Сообщений: 87
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Из Вашего описания
Вот как обычно - хочешь как лучше а получается как всегда...
Понятно что я не "шарю" в макросах и думал что той части кода и моих пояснений достаточно чтоб не забивать людям голову лишним.. оказалось наоборот ((
С екселем я практически вообще не сталкиваюсь но понадобилось изменить пару книг и по мере возможности стараюсь это сделать сам но как видете часто обращаюсь за помощью.. и как оказалось вынуждаю еще и делать людей лишнюю работу.. ((
Вот эти варианты то что мне и надо было:
Код:
Sheets("FORM-1").Cells(Rows.Count, 1).End(xlUp).EntireRow.Copy
Код:
Sheets("FORM-1").Cells(Rows.Count, 1).End(xlUp).Offset(-2).EntireRow.Copy
Большое Вам спасибо и отдельно спасибо за понимание то что кто-то ничего в екселе не понимает ))
СтаСС вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какая часть кода вредоносная? shy_plumbum PHP 10 09.01.2016 11:37
Изменить часть объекта в коллекции. DimDimich C# (си шарп) 8 19.02.2015 17:25
Объясните часть кода (Delphi) Начинающий програм Помощь студентам 2 29.03.2012 20:49
Прокомментировать часть кода Kasper1 Общие вопросы по Java, Java SE, Kotlin 4 08.01.2011 20:42
изменить часть объединенной ячейки невозможно Shaytan Microsoft Office Excel 3 19.08.2009 10:02