Заполнение ячеек
Leojse
Дата: Пятница, 11.07.2014, 10:07 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация:
1
±
Замечаний:
0% ±
2010/2013
Добрый день, уважаемые форумчане! Помогите, пожалуйста, разобраться с одной задачей. В выделенном диапазоне мне сначала нужно заполнить пустые ячейки значением "0". Затем в этом же диапазоне необходимо зайти в каждую ячейку и выйти из нее. Затем значение "0" заменить снова на пустые ячейки. Наверно, при прочтении, задача покажется очень странной, но, пожалуйста, поверьте, мне это нужно. Попытался сам выполнить задачу: [vba]Код
Sub step1_() Selection.SpecialCells(xlCellTypeBlanks).Select Selection.FormulaR1C1 = "0" End Sub Sub step2_() For Each cell In Selection Application.SendKeys "{F2}" Application.SendKeys "{ENTER}" Next End Sub Sub step3_() For Each cell In Selection Selection.Replace What:="0", Replacement:="", LookAt:=xlWhole, _ SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Next End Sub
[/vba] Всё вроде бы нормально, но почему-то сбивается выделение диапазона (диапазон как бы разрывается после step1 в тех ячейках, где уже вбиты значения, отличные от "0"). Заранее спасибо за помощь!
Добрый день, уважаемые форумчане! Помогите, пожалуйста, разобраться с одной задачей. В выделенном диапазоне мне сначала нужно заполнить пустые ячейки значением "0". Затем в этом же диапазоне необходимо зайти в каждую ячейку и выйти из нее. Затем значение "0" заменить снова на пустые ячейки. Наверно, при прочтении, задача покажется очень странной, но, пожалуйста, поверьте, мне это нужно. Попытался сам выполнить задачу: [vba]Код
Sub step1_() Selection.SpecialCells(xlCellTypeBlanks).Select Selection.FormulaR1C1 = "0" End Sub Sub step2_() For Each cell In Selection Application.SendKeys "{F2}" Application.SendKeys "{ENTER}" Next End Sub Sub step3_() For Each cell In Selection Selection.Replace What:="0", Replacement:="", LookAt:=xlWhole, _ SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Next End Sub
[/vba] Всё вроде бы нормально, но почему-то сбивается выделение диапазона (диапазон как бы разрывается после step1 в тех ячейках, где уже вбиты значения, отличные от "0"). Заранее спасибо за помощь! Leojse
Сообщение отредактировал Leojse - Пятница, 11.07.2014, 10:21
Ответить
Сообщение Добрый день, уважаемые форумчане! Помогите, пожалуйста, разобраться с одной задачей. В выделенном диапазоне мне сначала нужно заполнить пустые ячейки значением "0". Затем в этом же диапазоне необходимо зайти в каждую ячейку и выйти из нее. Затем значение "0" заменить снова на пустые ячейки. Наверно, при прочтении, задача покажется очень странной, но, пожалуйста, поверьте, мне это нужно. Попытался сам выполнить задачу: [vba]Код
Sub step1_() Selection.SpecialCells(xlCellTypeBlanks).Select Selection.FormulaR1C1 = "0" End Sub Sub step2_() For Each cell In Selection Application.SendKeys "{F2}" Application.SendKeys "{ENTER}" Next End Sub Sub step3_() For Each cell In Selection Selection.Replace What:="0", Replacement:="", LookAt:=xlWhole, _ SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Next End Sub
[/vba] Всё вроде бы нормально, но почему-то сбивается выделение диапазона (диапазон как бы разрывается после step1 в тех ячейках, где уже вбиты значения, отличные от "0"). Заранее спасибо за помощь! Автор - Leojse Дата добавления - 11.07.2014 в 10:07
Формуляр
Дата: Пятница, 11.07.2014, 10:25 |
Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация:
255
±
Замечаний:
0% ±
Excel 2003, 2013
Всё вроде бы нормально, почему-то сбивается выделение диапазона.
Конечно сбивается. Вы ж сами меняете выделенный диапазон: [vba]Код
Selection.SpecialCells(xlCellTypeBlanks).Select
[/vba] Уберите Select: [vba]Код
Selection.SpecialCells(xlCellTypeBlanks).value = "0"
[/vba] И вообще, убирайте везде, где есть, последовательность [vba]Код
<чего-нибудь>.Select Selection.<чего-нибудь>
[/vba] это вредные издержки макрокодера.
Всё вроде бы нормально, почему-то сбивается выделение диапазона.
Конечно сбивается. Вы ж сами меняете выделенный диапазон: [vba]Код
Selection.SpecialCells(xlCellTypeBlanks).Select
[/vba] Уберите Select: [vba]Код
Selection.SpecialCells(xlCellTypeBlanks).value = "0"
[/vba] И вообще, убирайте везде, где есть, последовательность [vba]Код
<чего-нибудь>.Select Selection.<чего-нибудь>
[/vba] это вредные издержки макрокодера.Формуляр
Excel 2003 EN, 2013 EN
Сообщение отредактировал Формуляр - Пятница, 11.07.2014, 10:33
Ответить
Сообщение Всё вроде бы нормально, почему-то сбивается выделение диапазона.
Конечно сбивается. Вы ж сами меняете выделенный диапазон: [vba]Код
Selection.SpecialCells(xlCellTypeBlanks).Select
[/vba] Уберите Select: [vba]Код
Selection.SpecialCells(xlCellTypeBlanks).value = "0"
[/vba] И вообще, убирайте везде, где есть, последовательность [vba]Код
<чего-нибудь>.Select Selection.<чего-нибудь>
[/vba] это вредные издержки макрокодера.Автор - Формуляр Дата добавления - 11.07.2014 в 10:25
Leojse
Дата: Пятница, 11.07.2014, 10:47 |
Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация:
1
±
Замечаний:
0% ±
2010/2013
Формуляр , спасибо Вам большое! И опять вопрос возник... Но по шагу 2. Получается, "вход-выход" из ячеек в диапазоне повторяется несколько раз почему-то... Не подскажите, как прописать, чтобы "вход-выход" выполнялся в диапазоне только 1 раз?
Формуляр , спасибо Вам большое! И опять вопрос возник... Но по шагу 2. Получается, "вход-выход" из ячеек в диапазоне повторяется несколько раз почему-то... Не подскажите, как прописать, чтобы "вход-выход" выполнялся в диапазоне только 1 раз?Leojse
Ответить
Сообщение Формуляр , спасибо Вам большое! И опять вопрос возник... Но по шагу 2. Получается, "вход-выход" из ячеек в диапазоне повторяется несколько раз почему-то... Не подскажите, как прописать, чтобы "вход-выход" выполнялся в диапазоне только 1 раз?Автор - Leojse Дата добавления - 11.07.2014 в 10:47
Формуляр
Дата: Пятница, 11.07.2014, 11:03 |
Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация:
255
±
Замечаний:
0% ±
Excel 2003, 2013
Как вы, интересно, опредляете, что он происходит несколько раз? На всякий случай вставьте [vba]Код
Application.EnableEvents = False ... Application.EnableEvents = True
[/vba] в начале и в конце кода.
Как вы, интересно, опредляете, что он происходит несколько раз? На всякий случай вставьте [vba]Код
Application.EnableEvents = False ... Application.EnableEvents = True
[/vba] в начале и в конце кода. Формуляр
Excel 2003 EN, 2013 EN
Ответить
Сообщение Как вы, интересно, опредляете, что он происходит несколько раз? На всякий случай вставьте [vba]Код
Application.EnableEvents = False ... Application.EnableEvents = True
[/vba] в начале и в конце кода. Автор - Формуляр Дата добавления - 11.07.2014 в 11:03
Leojse
Дата: Пятница, 11.07.2014, 11:14 |
Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация:
1
±
Замечаний:
0% ±
2010/2013
Формуляр , когда запускаю шаг 2 видно, что "вход-выход" происходит несколько раз. Хорошо, вставлю [vba]Код
Application.EnableEvents = False ... Application.EnableEvents = True
[/vba] Сейчас попробовал всё на одну кнопку прицепить. Опять не получается то, что нужно. При попытке всё повесить на одну кнопку сначала идет заполнение ячеек нулями, потом идет очищение ячеек от нулей, и только потом идет "вход-выход". Проверял несколько раз. Пишу через рекордер: [vba]Код
Sub вместе_() Application.Run "PERSONAL.XLSB!step1_" Application.Run "PERSONAL.XLSB!step2_" ActiveCell.FormulaR1C1 = "=R[53]C[1]" Range("M1609:M1648").Select Range("M1620").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1621").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1622").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1623").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1624").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1630").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1632").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1633").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1635").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1637").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1639").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1641").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1646").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select Range("M1647").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select Range("M1648").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select ActiveCell.FormulaR1C1 = "=R[53]C[1]" Range("M1609:M1648").Select Range("M1620").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1621").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1622").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1623").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1624").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1630").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1632").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1633").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1635").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1637").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1639").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1641").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1646").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select Range("M1647").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select Range("M1648").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select ActiveCell.FormulaR1C1 = "=R[53]C[1]" Range("M1609:M1648").Select Range("M1620").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1621").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1622").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1623").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1624").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1630").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1632").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1633").Activate Application.Run "PERSONAL.XLSB!step3_" End Sub
[/vba] Убираю то, что между step 2 и step 3, и получается то, что писал перед кодом. Еще заметил баг с клавиатурой - после работы макроса почему-то отключается num lock
Формуляр , когда запускаю шаг 2 видно, что "вход-выход" происходит несколько раз. Хорошо, вставлю [vba]Код
Application.EnableEvents = False ... Application.EnableEvents = True
[/vba] Сейчас попробовал всё на одну кнопку прицепить. Опять не получается то, что нужно. При попытке всё повесить на одну кнопку сначала идет заполнение ячеек нулями, потом идет очищение ячеек от нулей, и только потом идет "вход-выход". Проверял несколько раз. Пишу через рекордер: [vba]Код
Sub вместе_() Application.Run "PERSONAL.XLSB!step1_" Application.Run "PERSONAL.XLSB!step2_" ActiveCell.FormulaR1C1 = "=R[53]C[1]" Range("M1609:M1648").Select Range("M1620").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1621").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1622").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1623").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1624").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1630").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1632").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1633").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1635").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1637").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1639").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1641").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1646").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select Range("M1647").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select Range("M1648").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select ActiveCell.FormulaR1C1 = "=R[53]C[1]" Range("M1609:M1648").Select Range("M1620").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1621").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1622").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1623").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1624").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1630").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1632").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1633").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1635").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1637").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1639").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1641").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1646").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select Range("M1647").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select Range("M1648").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select ActiveCell.FormulaR1C1 = "=R[53]C[1]" Range("M1609:M1648").Select Range("M1620").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1621").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1622").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1623").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1624").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1630").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1632").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1633").Activate Application.Run "PERSONAL.XLSB!step3_" End Sub
[/vba] Убираю то, что между step 2 и step 3, и получается то, что писал перед кодом. Еще заметил баг с клавиатурой - после работы макроса почему-то отключается num lock Leojse
Ответить
Сообщение Формуляр , когда запускаю шаг 2 видно, что "вход-выход" происходит несколько раз. Хорошо, вставлю [vba]Код
Application.EnableEvents = False ... Application.EnableEvents = True
[/vba] Сейчас попробовал всё на одну кнопку прицепить. Опять не получается то, что нужно. При попытке всё повесить на одну кнопку сначала идет заполнение ячеек нулями, потом идет очищение ячеек от нулей, и только потом идет "вход-выход". Проверял несколько раз. Пишу через рекордер: [vba]Код
Sub вместе_() Application.Run "PERSONAL.XLSB!step1_" Application.Run "PERSONAL.XLSB!step2_" ActiveCell.FormulaR1C1 = "=R[53]C[1]" Range("M1609:M1648").Select Range("M1620").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1621").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1622").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1623").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1624").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1630").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1632").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1633").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1635").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1637").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1639").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1641").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1646").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select Range("M1647").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select Range("M1648").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select ActiveCell.FormulaR1C1 = "=R[53]C[1]" Range("M1609:M1648").Select Range("M1620").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1621").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1622").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1623").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1624").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1630").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1632").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1633").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1635").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1637").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1639").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1641").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1646").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select Range("M1647").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select Range("M1648").Activate ActiveCell.FormulaR1C1 = "2" Range("M1609:M1648").Select ActiveCell.FormulaR1C1 = "=R[53]C[1]" Range("M1609:M1648").Select Range("M1620").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1621").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1622").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1623").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1624").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1630").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1632").Activate ActiveCell.FormulaR1C1 = "0" Range("M1609:M1648").Select Range("M1633").Activate Application.Run "PERSONAL.XLSB!step3_" End Sub
[/vba] Убираю то, что между step 2 и step 3, и получается то, что писал перед кодом. Еще заметил баг с клавиатурой - после работы макроса почему-то отключается num lock Автор - Leojse Дата добавления - 11.07.2014 в 11:14
Формуляр
Дата: Пятница, 11.07.2014, 11:24 |
Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация:
255
±
Замечаний:
0% ±
Excel 2003, 2013
когда запускаю шаг 2 видно, что "вход-выход" происходит несколько раз
А мне вот ничего не видно. Вы написали 60 постов, а правила почитать не удосужились? ГДЕ ФАЙЛ?
когда запускаю шаг 2 видно, что "вход-выход" происходит несколько раз
А мне вот ничего не видно. Вы написали 60 постов, а правила почитать не удосужились? ГДЕ ФАЙЛ?Формуляр
Excel 2003 EN, 2013 EN
Сообщение отредактировал Формуляр - Пятница, 11.07.2014, 11:25
Ответить
Сообщение когда запускаю шаг 2 видно, что "вход-выход" происходит несколько раз
А мне вот ничего не видно. Вы написали 60 постов, а правила почитать не удосужились? ГДЕ ФАЙЛ?Автор - Формуляр Дата добавления - 11.07.2014 в 11:24
Leojse
Дата: Пятница, 11.07.2014, 14:04 |
Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация:
1
±
Замечаний:
0% ±
2010/2013
Прикладываю файл-пример. Вообщем, при заполнении месяцев кварталы, полугодия, 9 месяцев формируются сами (есть макрос в модуле "Лист"). При заполнении месяцев "растягиванием", на пример, 1 полугодие начинает формироваться неверно. Исправляю так - где пустые ячейки ставлю ноль и нажимаю enter. Где есть уже числа, вхожу в ячейку, жмакаю enter. Потом с помощью "Найти-заменить" нули убираю. Но строк очень много (порядка 2-х тысяч), очень долго сидеть и прожмакивать ячейки. Копировать/вырезать и тут же вставлять не помогает. Если делать специальную вставку и складывать ноль, то тоже ничего не исправляется. Да, понятно, что автозаполнением тогда лучше пользоваться, но на файле, помимо меня, работают еще люди. Попробуйте на колонке Февраля объем поочередно запстить макросы step. тогда "1 полугодие" исправляется. Но если на той же колонке запустить "проверку", то опять ничего не выходит.
Прикладываю файл-пример. Вообщем, при заполнении месяцев кварталы, полугодия, 9 месяцев формируются сами (есть макрос в модуле "Лист"). При заполнении месяцев "растягиванием", на пример, 1 полугодие начинает формироваться неверно. Исправляю так - где пустые ячейки ставлю ноль и нажимаю enter. Где есть уже числа, вхожу в ячейку, жмакаю enter. Потом с помощью "Найти-заменить" нули убираю. Но строк очень много (порядка 2-х тысяч), очень долго сидеть и прожмакивать ячейки. Копировать/вырезать и тут же вставлять не помогает. Если делать специальную вставку и складывать ноль, то тоже ничего не исправляется. Да, понятно, что автозаполнением тогда лучше пользоваться, но на файле, помимо меня, работают еще люди. Попробуйте на колонке Февраля объем поочередно запстить макросы step. тогда "1 полугодие" исправляется. Но если на той же колонке запустить "проверку", то опять ничего не выходит. Leojse
Ответить
Сообщение Прикладываю файл-пример. Вообщем, при заполнении месяцев кварталы, полугодия, 9 месяцев формируются сами (есть макрос в модуле "Лист"). При заполнении месяцев "растягиванием", на пример, 1 полугодие начинает формироваться неверно. Исправляю так - где пустые ячейки ставлю ноль и нажимаю enter. Где есть уже числа, вхожу в ячейку, жмакаю enter. Потом с помощью "Найти-заменить" нули убираю. Но строк очень много (порядка 2-х тысяч), очень долго сидеть и прожмакивать ячейки. Копировать/вырезать и тут же вставлять не помогает. Если делать специальную вставку и складывать ноль, то тоже ничего не исправляется. Да, понятно, что автозаполнением тогда лучше пользоваться, но на файле, помимо меня, работают еще люди. Попробуйте на колонке Февраля объем поочередно запстить макросы step. тогда "1 полугодие" исправляется. Но если на той же колонке запустить "проверку", то опять ничего не выходит. Автор - Leojse Дата добавления - 11.07.2014 в 14:04
Leojse
Дата: Пятница, 11.07.2014, 16:28 |
Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация:
1
±
Замечаний:
0% ±
2010/2013
При запуске "проверки" сначала идет заполнение нулями, потом (почему-то) их удаление, и только потом "вход-выход". Подскажите, как прописать, чтобы ыбло так: заполнение нулями-"вход-выход"-удаление нулей?
При запуске "проверки" сначала идет заполнение нулями, потом (почему-то) их удаление, и только потом "вход-выход". Подскажите, как прописать, чтобы ыбло так: заполнение нулями-"вход-выход"-удаление нулей? Leojse
Ответить
Сообщение При запуске "проверки" сначала идет заполнение нулями, потом (почему-то) их удаление, и только потом "вход-выход". Подскажите, как прописать, чтобы ыбло так: заполнение нулями-"вход-выход"-удаление нулей? Автор - Leojse Дата добавления - 11.07.2014 в 16:28
Формуляр
Дата: Пятница, 11.07.2014, 20:33 |
Сообщение № 9
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация:
255
±
Замечаний:
0% ±
Excel 2003, 2013
Подскажите, как прописать, чтобы ыбло так: заполнение нулями-"вход-выход"-удаление нулей?
Проверка происходит именно в этой последовательности. Также как и "вход-выход" при запуске step2_() выполняется 1 раз. Ещё раз спрашиваю, как вы определяете, что это происходит как-то иначе? Приложите видео.
Подскажите, как прописать, чтобы ыбло так: заполнение нулями-"вход-выход"-удаление нулей?
Проверка происходит именно в этой последовательности. Также как и "вход-выход" при запуске step2_() выполняется 1 раз. Ещё раз спрашиваю, как вы определяете, что это происходит как-то иначе? Приложите видео.Формуляр
Excel 2003 EN, 2013 EN
Ответить
Сообщение Подскажите, как прописать, чтобы ыбло так: заполнение нулями-"вход-выход"-удаление нулей?
Проверка происходит именно в этой последовательности. Также как и "вход-выход" при запуске step2_() выполняется 1 раз. Ещё раз спрашиваю, как вы определяете, что это происходит как-то иначе? Приложите видео.Автор - Формуляр Дата добавления - 11.07.2014 в 20:33
Формуляр
Дата: Пятница, 11.07.2014, 20:52 |
Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация:
255
±
Замечаний:
0% ±
Excel 2003, 2013
Вместо извращений с "входом-выходом" вызывайте лучше обработку вода Sheet1.Worksheet_Change() напрямую: [vba]Код
Sub step2_() For Each cell In Selection Sheet1.Worksheet_Change (cell) ' Application.SendKeys "{F2}" ' Application.SendKeys "{ENTER}" Next End Sub
[/vba] Для этого нужно сначала снять с неё Private PS: И лучше делать это на первом шаге, сразу после записи 0 в ячейку, чтоб не обрабатывать уже заполненные ячейки.
Вместо извращений с "входом-выходом" вызывайте лучше обработку вода Sheet1.Worksheet_Change() напрямую: [vba]Код
Sub step2_() For Each cell In Selection Sheet1.Worksheet_Change (cell) ' Application.SendKeys "{F2}" ' Application.SendKeys "{ENTER}" Next End Sub
[/vba] Для этого нужно сначала снять с неё Private PS: И лучше делать это на первом шаге, сразу после записи 0 в ячейку, чтоб не обрабатывать уже заполненные ячейки. Формуляр
Excel 2003 EN, 2013 EN
Сообщение отредактировал Формуляр - Пятница, 11.07.2014, 20:59
Ответить
Сообщение Вместо извращений с "входом-выходом" вызывайте лучше обработку вода Sheet1.Worksheet_Change() напрямую: [vba]Код
Sub step2_() For Each cell In Selection Sheet1.Worksheet_Change (cell) ' Application.SendKeys "{F2}" ' Application.SendKeys "{ENTER}" Next End Sub
[/vba] Для этого нужно сначала снять с неё Private PS: И лучше делать это на первом шаге, сразу после записи 0 в ячейку, чтоб не обрабатывать уже заполненные ячейки. Автор - Формуляр Дата добавления - 11.07.2014 в 20:52
Leojse
Дата: Четверг, 16.10.2014, 08:19 |
Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 148
Репутация:
1
±
Замечаний:
0% ±
2010/2013
Доброе утро, уважаемые форумчане! Буду признателен за любой ответ! Подскажите, пожалуйста, а возможно ли step2() каким-то образом адаптировать для личной книги макросов? При запуске из личной книги на строчке [vba]Код
Sheet1.Worksheet_Change (cell)
[/vba] выдает ошибку ошибку 424 "Object required".
Доброе утро, уважаемые форумчане! Буду признателен за любой ответ! Подскажите, пожалуйста, а возможно ли step2() каким-то образом адаптировать для личной книги макросов? При запуске из личной книги на строчке [vba]Код
Sheet1.Worksheet_Change (cell)
[/vba] выдает ошибку ошибку 424 "Object required". Leojse
Ответить
Сообщение Доброе утро, уважаемые форумчане! Буду признателен за любой ответ! Подскажите, пожалуйста, а возможно ли step2() каким-то образом адаптировать для личной книги макросов? При запуске из личной книги на строчке [vba]Код
Sheet1.Worksheet_Change (cell)
[/vba] выдает ошибку ошибку 424 "Object required". Автор - Leojse Дата добавления - 16.10.2014 в 08:19