Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/добавление диапазона строк в определенное место - Страница 2 - Мир MS Excel

  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_, DrMini  
добавление диапазона строк в определенное место
luny Дата: Пятница, 09.05.2014, 17:05 | Сообщение № 21
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 40% ±

Excel 2003
Michael_S, вроде бы оно!
вопрос еще можно - в каких случаях при сравнении ячеек с числом значение ячейки может "искажаться" т.е. поиск ее находит а макрос упорно пропускает?
 
Ответить
СообщениеMichael_S, вроде бы оно!
вопрос еще можно - в каких случаях при сравнении ячеек с числом значение ячейки может "искажаться" т.е. поиск ее находит а макрос упорно пропускает?

Автор - luny
Дата добавления - 09.05.2014 в 17:05
Michael_S Дата: Пятница, 09.05.2014, 17:33 | Сообщение № 22
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Последний вопрос не совсем понял.
Если в параметрах поиска снят поиска снят флажок "Ячейка целиком", то, например ячейка с числом 55,35 будет найдена и при поиске "55", и при поиске "35", и при поиске просто запятой.
В макросах тоже ТАК можно искать, если поставить цель.
Но это уже вопрос другой темы.
 
Ответить
СообщениеПоследний вопрос не совсем понял.
Если в параметрах поиска снят поиска снят флажок "Ячейка целиком", то, например ячейка с числом 55,35 будет найдена и при поиске "55", и при поиске "35", и при поиске просто запятой.
В макросах тоже ТАК можно искать, если поставить цель.
Но это уже вопрос другой темы.

Автор - Michael_S
Дата добавления - 09.05.2014 в 17:33
luny Дата: Пятница, 09.05.2014, 17:40 | Сообщение № 23
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 40% ±

Excel 2003
Michael_S, я пробовал на оригинальном файле под который все делается - на одном листе ячейка предположим 12122 и другом 12122 - у обеих формат число и ноль знаков после запятой а макрос не удаляет почему то строку - при том что поиск находит ячейку ... - у меня недоумение


Сообщение отредактировал luny - Пятница, 09.05.2014, 17:41
 
Ответить
СообщениеMichael_S, я пробовал на оригинальном файле под который все делается - на одном листе ячейка предположим 12122 и другом 12122 - у обеих формат число и ноль знаков после запятой а макрос не удаляет почему то строку - при том что поиск находит ячейку ... - у меня недоумение

Автор - luny
Дата добавления - 09.05.2014 в 17:40
Michael_S Дата: Пятница, 09.05.2014, 17:56 | Сообщение № 24
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
По правилам форума - это вопрос другой темы.
Создайте тему, в ней пример - будем разбираться (не обязательно я).
 
Ответить
СообщениеПо правилам форума - это вопрос другой темы.
Создайте тему, в ней пример - будем разбираться (не обязательно я).

Автор - Michael_S
Дата добавления - 09.05.2014 в 17:56
luny Дата: Пятница, 09.05.2014, 17:57 | Сообщение № 25
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 40% ±

Excel 2003
Michael_S, ладно - большое спасибо за помощь
 
Ответить
СообщениеMichael_S, ладно - большое спасибо за помощь

Автор - luny
Дата добавления - 09.05.2014 в 17:57
Michael_S Дата: Пятница, 09.05.2014, 18:30 | Сообщение № 26
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Если вы про этот макрос:
[vba]
Код
Sub удаление№()
     Application.ScreenUpdating = False
     For rw1 = 2 To Sheets("список").Cells(Rows.Count, 1).End(xlUp).Row
         With Sheets("удаление")
             For rw2 = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
                 If .Cells(rw2, 1) <> "" And .Cells(rw2, 1) <> "~*" Then
                     If Sheets("список").Cells(rw1, 1) = .Cells(rw2, 1) Then
                         .Cells(rw2, 4) = Sheets("список").Cells(rw1, 2)
                         Sheets("список").Rows(rw1).Delete
                         Exit For
                     End If
                 End If
             Next
         End With
     Next
     Application.ScreenUpdating = True
End Sub
[/vba]
то цикл
For rw1 = 2 To Sheets("список").Cells(Rows.Count, 1).End(xlUp).Row
лучше проходить снизу вверх - тогда при удалении строк номера строк не сбиваются:
For rw1 = Sheets("список").Cells(Rows.Count, 1).End(xlUp).Row to 2 step -1
..может в этом дело...
 
Ответить
СообщениеЕсли вы про этот макрос:
[vba]
Код
Sub удаление№()
     Application.ScreenUpdating = False
     For rw1 = 2 To Sheets("список").Cells(Rows.Count, 1).End(xlUp).Row
         With Sheets("удаление")
             For rw2 = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
                 If .Cells(rw2, 1) <> "" And .Cells(rw2, 1) <> "~*" Then
                     If Sheets("список").Cells(rw1, 1) = .Cells(rw2, 1) Then
                         .Cells(rw2, 4) = Sheets("список").Cells(rw1, 2)
                         Sheets("список").Rows(rw1).Delete
                         Exit For
                     End If
                 End If
             Next
         End With
     Next
     Application.ScreenUpdating = True
End Sub
[/vba]
то цикл
For rw1 = 2 To Sheets("список").Cells(Rows.Count, 1).End(xlUp).Row
лучше проходить снизу вверх - тогда при удалении строк номера строк не сбиваются:
For rw1 = Sheets("список").Cells(Rows.Count, 1).End(xlUp).Row to 2 step -1
..может в этом дело...

Автор - Michael_S
Дата добавления - 09.05.2014 в 18:30
luny Дата: Пятница, 09.05.2014, 21:54 | Сообщение № 27
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 40% ±

Excel 2003
Michael_S, что могу сказать - вы красавчик просто!
век думал бы не догадался бы....
 
Ответить
СообщениеMichael_S, что могу сказать - вы красавчик просто!
век думал бы не догадался бы....

Автор - luny
Дата добавления - 09.05.2014 в 21:54
RAN Дата: Пятница, 09.05.2014, 22:16 | Сообщение № 28
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
вы красавчик просто!

Похвалил.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
вы красавчик просто!

Похвалил.

Автор - RAN
Дата добавления - 09.05.2014 в 22:16
luny Дата: Вторник, 13.05.2014, 18:55 | Сообщение № 29
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 40% ±

Excel 2003
Michael_S,
необольшая проблемка - добавляет "не те" строки
если в листе "добавление" есть строки
12122 ....имя1
..............город3
13122 ....имя15

то в лист "список" в конец списка добавляет "город3"
Цитата
For rw1 = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(rw1, 4) = "" Then
mKey = Left(.Cells(rw1, 1), 2)
If mKey <> "*" Then


у вас стоит проверка "пустая ли" ячейка в 4 ряду - это специально или можно переставить проверку на первый ряд?


Сообщение отредактировал luny - Вторник, 13.05.2014, 18:57
 
Ответить
СообщениеMichael_S,
необольшая проблемка - добавляет "не те" строки
если в листе "добавление" есть строки
12122 ....имя1
..............город3
13122 ....имя15

то в лист "список" в конец списка добавляет "город3"
Цитата
For rw1 = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(rw1, 4) = "" Then
mKey = Left(.Cells(rw1, 1), 2)
If mKey <> "*" Then


у вас стоит проверка "пустая ли" ячейка в 4 ряду - это специально или можно переставить проверку на первый ряд?

Автор - luny
Дата добавления - 13.05.2014 в 18:55
Michael_S Дата: Понедельник, 19.05.2014, 19:46 | Сообщение № 30
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
luny, я не глубоко вникал в ваш файл при решении, я думал. что вам достаточно дать направление решения.
Выложите пример, в котором возникает проблема.
у вас стоит проверка "пустая ли" ячейка в 4 ряду - это специально или можно переставить проверку на первый ряд?

Ну вы ж зачем-то "Ок" ставите... вот. что бы второй раз не добавлять, 4-й столбец и проверяется.
 
Ответить
Сообщениеluny, я не глубоко вникал в ваш файл при решении, я думал. что вам достаточно дать направление решения.
Выложите пример, в котором возникает проблема.
у вас стоит проверка "пустая ли" ячейка в 4 ряду - это специально или можно переставить проверку на первый ряд?

Ну вы ж зачем-то "Ок" ставите... вот. что бы второй раз не добавлять, 4-й столбец и проверяется.

Автор - Michael_S
Дата добавления - 19.05.2014 в 19:46
luny Дата: Понедельник, 19.05.2014, 22:04 | Сообщение № 31
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 40% ±

Excel 2003
Michael_S, я не на столько грамотный чтоб некоторые вещи понять с первого раза...
"ок" нужно для того чтоб потом просмотреть как отработал макрос и только
вы грамотный человек и сделали любопытный код ... - вероятность того что вы завязали в этой проверке какую либо переменную я не исключил - лучше спросить чем испортить....

Цитата
If .Cells(rw1, 1) <> "" and .Cells(rw1, 4) = "" Then


так потенциально вопрос закрывается?
 
Ответить
СообщениеMichael_S, я не на столько грамотный чтоб некоторые вещи понять с первого раза...
"ок" нужно для того чтоб потом просмотреть как отработал макрос и только
вы грамотный человек и сделали любопытный код ... - вероятность того что вы завязали в этой проверке какую либо переменную я не исключил - лучше спросить чем испортить....

Цитата
If .Cells(rw1, 1) <> "" and .Cells(rw1, 4) = "" Then


так потенциально вопрос закрывается?

Автор - luny
Дата добавления - 19.05.2014 в 22:04
Michael_S Дата: Вторник, 20.05.2014, 06:06 | Сообщение № 32
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Да, скорее всего, но, повторюсь, - я не очень сильно вникал в вашу задачу. или так:
[vba]
Код
If mKey <> "*" or  mKey <> "" Then
[/vba]
 
Ответить
СообщениеДа, скорее всего, но, повторюсь, - я не очень сильно вникал в вашу задачу. или так:
[vba]
Код
If mKey <> "*" or  mKey <> "" Then
[/vba]

Автор - Michael_S
Дата добавления - 20.05.2014 в 06:06
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!