<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBA: сортировать ячейки excel по содержимому]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=5606</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=5606&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBA: сортировать ячейки excel по содержимому».]]></description>
		<lastBuildDate>Tue, 12 Apr 2011 07:27:33 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBA: сортировать ячейки excel по содержимому]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=47565#p47565</link>
			<description><![CDATA[<div class="quotebox"><cite>User419e пишет:</cite><blockquote><p>Попытался сделать то, что вы хотели. Условия: таблица из трёх столбцов с заголовками (не обязательно такими, но обязательно с заголовками):</p><p>Наименования|&nbsp; &nbsp; Найденные|&nbsp; &nbsp; Что искать|<br />Гайка&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp;гайк&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|<br />Гайка&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp;шуруп&nbsp; &nbsp; &nbsp; |<br />шуруп&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|</p><p>В первом столбце ваш список, в третьем - шаблоны поиска(условие: в 1 и 3 столбце не должно быть пустых ячеек между заполненными). Сам макрос:<br /></p><div class="codebox"><pre><code>Sub gaika()

f = 1
r = &quot;A&quot; &amp; f
v = &quot;nil&quot;
Do While v &lt;&gt; &quot;&quot;
Range(r).Select
v = ActiveCell.Text
f = f + 1
r = &quot;A&quot; &amp; f
Loop

b = 1
a = &quot;A&quot; &amp; b
c = &quot;nil&quot;
Do While c &lt;&gt; &quot;&quot;
Range(a).Select
c = ActiveCell.Text
b = b + 1
a = &quot;A&quot; &amp; b
Loop
For i = 2 To b - 2
    srch = Range(&quot;C&quot; &amp; i).Text
     Columns(&quot;a:a&quot;).Select
       For q = 1 To f - 2
        On Error Resume Next
        Selection.Find(What:=srch, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
        
         Range(&quot;b&quot; &amp; ActiveCell.Row).FormulaR1C1 = ActiveCell.Text
    Next q
    Next i
End Sub</code></pre></div><p>Переносить текст не получилось, так как у меня возникли проблемы с обработкой ошибок. Может кто подкорректирует.</p></blockquote></div><p>Ето ка раз то што я искал</p>]]></description>
			<author><![CDATA[null@example.com (gorih)]]></author>
			<pubDate>Tue, 12 Apr 2011 07:27:33 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=47565#p47565</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: сортировать ячейки excel по содержимому]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=47057#p47057</link>
			<description><![CDATA[<p>Всем огромное спасибо! Вы мне очень помогли!</p>]]></description>
			<author><![CDATA[null@example.com (fsc_psd)]]></author>
			<pubDate>Tue, 29 Mar 2011 01:44:44 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=47057#p47057</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: сортировать ячейки excel по содержимому]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46768#p46768</link>
			<description><![CDATA[<p>Попытался сделать то, что вы хотели. Условия: таблица из трёх столбцов с заголовками (не обязательно такими, но обязательно с заголовками):</p><p>Наименования|&nbsp; &nbsp; Найденные|&nbsp; &nbsp; Что искать|<br />Гайка&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp;гайк&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|<br />Гайка&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp;шуруп&nbsp; &nbsp; &nbsp; |<br />шуруп&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|</p><p>В первом столбце ваш список, в третьем - шаблоны поиска(условие: в 1 и 3 столбце не должно быть пустых ячеек между заполненными). Сам макрос:<br /></p><div class="codebox"><pre><code>Sub gaika()

f = 1
r = &quot;A&quot; &amp; f
v = &quot;nil&quot;
Do While v &lt;&gt; &quot;&quot;
Range(r).Select
v = ActiveCell.Text
f = f + 1
r = &quot;A&quot; &amp; f
Loop

b = 1
a = &quot;A&quot; &amp; b
c = &quot;nil&quot;
Do While c &lt;&gt; &quot;&quot;
Range(a).Select
c = ActiveCell.Text
b = b + 1
a = &quot;A&quot; &amp; b
Loop
For i = 2 To b - 2
    srch = Range(&quot;C&quot; &amp; i).Text
     Columns(&quot;a:a&quot;).Select
       For q = 1 To f - 2
        On Error Resume Next
        Selection.Find(What:=srch, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
        
         Range(&quot;b&quot; &amp; ActiveCell.Row).FormulaR1C1 = ActiveCell.Text
    Next q
    Next i
End Sub</code></pre></div><p>Переносить текст не получилось, так как у меня возникли проблемы с обработкой ошибок. Может кто подкорректирует.</p>]]></description>
			<author><![CDATA[null@example.com (User419e)]]></author>
			<pubDate>Thu, 24 Mar 2011 13:44:54 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46768#p46768</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: сортировать ячейки excel по содержимому]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46767#p46767</link>
			<description><![CDATA[<div class="quotebox"><cite>fsc_psd пишет:</cite><blockquote><p>... не &quot;переносит&quot; значения, а копирует их &lt;...&gt; как дополнить формулу, чтобы именно переносила?..</p></blockquote></div><p>Если речь об удалении исходных данных, то с помощью формул этого сделать нельзя.<br />Здесь надо поступать так:<br />- выделить диапазон ячеек с результирующими данными;<br />- скопировать его содержимое в буфер обмена;<br />- не снимая выделения, указать курсором &quot;мыши&quot; внутрь этого диапазона и щёлкнуть правой кнопкой;<br />- в появившемся контекстном меню указать на команду &quot;Специальная вставка...&quot; и щёлкнуть любой кнопкой;<br />- в появившемся окне, в разделе &quot;Вставить&quot;, выбрать вариант &quot;Значения&quot; и нажать кнопку &quot;OK&quot;;<br />- очистить диапазон ячеек с исходными данными.</p><div class="quotebox"><cite>fsc_psd пишет:</cite><blockquote><p>... формулы &lt;...&gt; нужно предварительно разместить в соответствующих ячейках листа, и делать это нужно всякий раз, когда захочется посортировать новый файл. При больших размерах файла, и частой его смене, это может быть утомительно...</p></blockquote></div><p>Это ничуть не утомительнее, чем описанная выше процедура замены формул на вычисленные ими значения. Инструмент используется тот же. Только вставлять надо не значения, а формулы.</p><div class="quotebox"><cite>fsc_psd пишет:</cite><blockquote><p>... Макрос же в лучшем случае нужно просто запустить. В худшем - чуток подредактировать под новый формат файла...</p></blockquote></div><p>1. Макрос, так же, как и набор формул, должен в новой книге откуда-то появиться.<br />2. В таких случаях нередко удобнее поступать наоборот: не формулы копировать из старой книги в новую, а исходные данные из новой книги - в копию старой книги с уже настроенными формулами и форматами результирующих таблиц.</p><p>Впрочем, дело хозяйское: макрос, так макрос.<br />Новый вариант книги ищите здесь: <a href="http://fayloobmennik.net/494032">http://fayloobmennik.net/494032</a></p><p>Для сравнения я сохранил листы с формулами, при этом универсализировав их (формулы) и несколько расширив их возможности.<br />Пример обработки данных макросом представлен на листе &quot;Макрос&quot;.<br />Исходные данные я не стал удалять для наглядности результата.</p><p>Примечание: формулы, составленные из стандартных функций рабочего листа,- более быстрый инструмент, чем самый лучший макрос, выполняющий аналогичную работу.</p>]]></description>
			<author><![CDATA[null@example.com (Dmitrii)]]></author>
			<pubDate>Thu, 24 Mar 2011 13:43:31 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46767#p46767</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: сортировать ячейки excel по содержимому]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46735#p46735</link>
			<description><![CDATA[<div class="quotebox"><cite>Dmitrii пишет:</cite><blockquote><p>придётся пока довольствоваться моей &quot;стряпнёй&quot;</p></blockquote></div><p>Она прекрасно работает, большое вам спасибо!<br />Единственно только, она не &quot;переносит&quot; значения, а копирует их. Подскажите пожалуйста, как дополнить формулу, чтобы именно переносила?</p><p>И не сочтите за наглость, но тут пришло понимание того, почему хочется именно макрос: ваши формулы, пр всей их действенности, нужно предварительно разместить в соответствующих ячейках листа, и делать это нужно всякий раз, когда захочется посортировать новый файл. При больших размерах файла, и частой его смене, это может быть утомительно. Макрос же в лучшем случае нужно просто запустить. В худшем - чуток подредактировать под новый формат файла. Я прошу прошения за назойливость, но, может быть, подсобите-таки и с макросом?</p>]]></description>
			<author><![CDATA[null@example.com (fsc_psd)]]></author>
			<pubDate>Thu, 24 Mar 2011 06:02:57 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46735#p46735</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: сортировать ячейки excel по содержимому]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46730#p46730</link>
			<description><![CDATA[<div class="quotebox"><cite>fsc_psd пишет:</cite><blockquote><p>... плохо знаю VBA, что даже не представляю, как можно найти информацию о нужных мне функциях...</p></blockquote></div><p>1. VBA и формулы, составленные из стандартных функций рабочего листа,- разные инструменты.<br />2. Встроенная справка Excel (как по функциям, так и по VBA) - очень хороший источник базовой информации.</p><div class="quotebox"><cite>fsc_psd пишет:</cite><blockquote><p>... Просто столбец ячеек с текстовыми значениями...</p></blockquote></div><p>Именно об этом и шла речь. Ну да ладно, придётся пока довольствоваться моей &quot;стряпнёй&quot;.<br />Здесь выложен файл с примером книги, данные на рабочих листах которой обрабатываются с помощью формул:<br /><a href="http://fayloobmennik.net/492785">http://fayloobmennik.net/492785</a></p>]]></description>
			<author><![CDATA[null@example.com (Dmitrii)]]></author>
			<pubDate>Wed, 23 Mar 2011 20:08:50 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46730#p46730</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: сортировать ячейки excel по содержимому]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46649#p46649</link>
			<description><![CDATA[<div class="quotebox"><cite>Dmitrii пишет:</cite><blockquote><p>На первый взгляд, Ваша задача совсем несложно решается</p></blockquote></div><p>Я искренне надеюсь, что это так. Но я настолько плохо знаю VBA, что даже не представляю, как можно найти информацию о нужных мне функциях.</p><div class="quotebox"><cite>Dmitrii пишет:</cite><blockquote><p>образец исходной таблицы</p></blockquote></div><p>Да нет пока никакой таблицы. Просто столбец ячеек с текстовыми значениями. Самый, так сказать, теоретический минимум.<br />Проверяем все ячейки, совпала часть содержимого с шаблоном - переносим соответствующую ячейку в соседнюю.</p>]]></description>
			<author><![CDATA[null@example.com (fsc_psd)]]></author>
			<pubDate>Wed, 23 Mar 2011 02:51:12 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46649#p46649</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: сортировать ячейки excel по содержимому]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46499#p46499</link>
			<description><![CDATA[<p>На первый взгляд, Ваша задача совсем несложно решается с помощью стандартных функций рабочего листа.<br />Почему решили прибегнуть именно к макросу?<br />Кстати, чтобы наводящих вопросов было меньше, а разговор по теме имел бы более предметный характер, полезно посмотреть на образец исходной таблицы (если не секрет, конечно).</p>]]></description>
			<author><![CDATA[null@example.com (Dmitrii)]]></author>
			<pubDate>Mon, 21 Mar 2011 13:16:14 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46499#p46499</guid>
		</item>
		<item>
			<title><![CDATA[VBA: сортировать ячейки excel по содержимому]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=46475#p46475</link>
			<description><![CDATA[<p>Здравствуйте!<br />Помогите, пожалуйста сделать макрос, который бы сортировал ячейки по их содержимому. Суть задачи такова: есть файл, в первом столбце которого много-много ячеек с наименованиями. Хотелось бы, чтобы макрос сканировал все непустые ячейки этого столбца (ну, или просто ячейки от первой до произвольной; или до 65535) и при совпадении хотя бы части содержимого с шаблоном (например, &quot;гайка&quot; или, лучше, &quot;гайк*&quot;), переносил всё содержимое ячейки в соседнюю (т.е. в ячейку соседнего столбца, имеющую тот же номер, что и исходная). Совсем здорово было бы, если бы макрос сканировал ячейки на совпадение с несколькими шаблонами, например &quot;гайк*&quot;, &quot;шуру*&quot; и &quot;гвозд*&quot; и брал бы эти значения шаблонов из опредленных, специально предназначенных для этого, ячеек; а переносил не только в соседнюю ячейку, а в ячейку с заданным смещением (для каждого шаблона - свое смещение; гайки - в соседнюю, шурупы - в &quot;через одну&quot; и т.д.).</p>]]></description>
			<author><![CDATA[null@example.com (fsc_psd)]]></author>
			<pubDate>Mon, 21 Mar 2011 02:40:47 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=46475#p46475</guid>
		</item>
	</channel>
</rss>
