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

Вход

Регистрация

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

 

= Мир MS Excel/Синтаксис VBA.Перенос данных и заполнение ячеек по условию. - Мир MS Excel

Старая форма входа
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: китин, _Boroda_  
Синтаксис VBA.Перенос данных и заполнение ячеек по условию.
Treider01 Дата: Среда, 10.09.2014, 16:09 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 1 ±
Замечаний: 0% ±

Excel 2003
Добрый день!

В первый раз пишу тему и надеюсь сделаю всё правильно. Поиск использовал, решение начал искать давно, однако ничего не нашёл.

Прелюдия - Записал макрос который переносит данные с одного листа на другой.
Суть проблемы - необходимо перенести одну строчку по условию, в ней очень много столбиков (около 30). Я записал макрос, однако перенос надо сделать по условию и строчек очень много (>1000). Поєтому я попытался создать цикл -

[vba]
Код

Sub pastgo1()
Dim i As Long
i = 2
Do While Cells(i, 1) <> ""
     Sheets("Sheet1").Select
     Range.Cells(i, 6).Select
     Selection.Copy
     Sheets("Sheet2").Select
     ActiveSheet.Paste
     Sheets("Sheet1").Select
     Range.Cells(i, 4).Select
     Application.CutCopyMode = False
     Selection.Copy
     Sheets("Sheet2").Select
     Range.Cells(i, 2).Select
     ActiveSheet.Paste
     Sheets("Sheet1").Select
     Range.Cells(i, 5).Select
     Application.CutCopyMode = False
     Selection.Copy
     Sheets("Sheet2").Select
     Range.Cells(i, 3).Select
     ActiveSheet.Paste
     ActiveCell.FormulaR1C1 = "=R[-3]C[-2]*R[-3]C[-4]/100"
i = i + 1
Loop
End Sub
[/vba]

Выкладываю только часть кода, потому что он очень длинный получился и без условия, потому что решил разобраться с проблемой поэтапно.
Вместо координтов в скобках стояла отдельная ячейка, я переправил макрос на то что есть сейчас и он не работает. Компилятор выдаёт ошибку Argument Not optional.

Так же -
[vba]
Код

Sub comm()
Dim i As Long
Do While Cells(i, 2) <> ""
If Cells(i, 9).Value = "paper0" And Cells(i, 8).Value = "spot1" Then
     Cells(i, 1) = 0.1
     Else
         If Cells(i, 9).Value = "paper1" Then
         Cells(i, 1) = 0.2
     Else
         If Cells(i, 9).Value = "paper2" Then
         Cells(i, 1) = 0.3
         i = i + 1
End If
Loop
End Sub
[/vba]

Вариантов else очень много, поєтому скопировал только часть кода. Выдает ошибку Loop without Do (как я понимаю компилятор видит конец цикла но не видит его начало).

О VBA знал раньше но работать начал с ним только позавчера, данные отличны от оригинальных потому что они конфединциальны, надуюсь вы отнесётесь к этому с пониманием, буду рад любой помощи. Спасибо.
 
Ответить
СообщениеДобрый день!

В первый раз пишу тему и надеюсь сделаю всё правильно. Поиск использовал, решение начал искать давно, однако ничего не нашёл.

Прелюдия - Записал макрос который переносит данные с одного листа на другой.
Суть проблемы - необходимо перенести одну строчку по условию, в ней очень много столбиков (около 30). Я записал макрос, однако перенос надо сделать по условию и строчек очень много (>1000). Поєтому я попытался создать цикл -

[vba]
Код

Sub pastgo1()
Dim i As Long
i = 2
Do While Cells(i, 1) <> ""
     Sheets("Sheet1").Select
     Range.Cells(i, 6).Select
     Selection.Copy
     Sheets("Sheet2").Select
     ActiveSheet.Paste
     Sheets("Sheet1").Select
     Range.Cells(i, 4).Select
     Application.CutCopyMode = False
     Selection.Copy
     Sheets("Sheet2").Select
     Range.Cells(i, 2).Select
     ActiveSheet.Paste
     Sheets("Sheet1").Select
     Range.Cells(i, 5).Select
     Application.CutCopyMode = False
     Selection.Copy
     Sheets("Sheet2").Select
     Range.Cells(i, 3).Select
     ActiveSheet.Paste
     ActiveCell.FormulaR1C1 = "=R[-3]C[-2]*R[-3]C[-4]/100"
i = i + 1
Loop
End Sub
[/vba]

Выкладываю только часть кода, потому что он очень длинный получился и без условия, потому что решил разобраться с проблемой поэтапно.
Вместо координтов в скобках стояла отдельная ячейка, я переправил макрос на то что есть сейчас и он не работает. Компилятор выдаёт ошибку Argument Not optional.

Так же -
[vba]
Код

Sub comm()
Dim i As Long
Do While Cells(i, 2) <> ""
If Cells(i, 9).Value = "paper0" And Cells(i, 8).Value = "spot1" Then
     Cells(i, 1) = 0.1
     Else
         If Cells(i, 9).Value = "paper1" Then
         Cells(i, 1) = 0.2
     Else
         If Cells(i, 9).Value = "paper2" Then
         Cells(i, 1) = 0.3
         i = i + 1
End If
Loop
End Sub
[/vba]

Вариантов else очень много, поєтому скопировал только часть кода. Выдает ошибку Loop without Do (как я понимаю компилятор видит конец цикла но не видит его начало).

О VBA знал раньше но работать начал с ним только позавчера, данные отличны от оригинальных потому что они конфединциальны, надуюсь вы отнесётесь к этому с пониманием, буду рад любой помощи. Спасибо.

Автор - Treider01
Дата добавления - 10.09.2014 в 16:09
Pelena Дата: Среда, 10.09.2014, 16:12 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19373
Репутация: 4531 ±
Замечаний: ±

Excel 365 & Mac Excel
Если речь о синтаксисе, то три оператора IF подразумевают три END IF
Если операторов IF много, используйте альтернативные варианты, SELECT CASE, например.
В любом случае нужен файл с примером


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЕсли речь о синтаксисе, то три оператора IF подразумевают три END IF
Если операторов IF много, используйте альтернативные варианты, SELECT CASE, например.
В любом случае нужен файл с примером

Автор - Pelena
Дата добавления - 10.09.2014 в 16:12
Treider01 Дата: Среда, 10.09.2014, 16:35 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 1 ±
Замечаний: 0% ±

Excel 2003
Если речь о синтаксисе, то три оператора IF подразумевают три END IF
Если операторов IF много, используйте альтернативные варианты, SELECT CASE, например.
В любом случае нужен файл с примером


Спасибо насчёт трёх End if - компилятор на ругается, сейчас буду проверять как работает. Операторов IF около 30 и єто не предел + ещё в двух местах используется ещё больше операторов поэтому альтернативный вариант насчёт SELECT CASE - я попробую его использовать, но так как у меня ещё основная работа много времени отнимает, то я ищу лёгкие и быстрые пути решения.

Насчёт файла (файлов на самом деле, отличаются конфигурацией и набором формул), то он огромен, его уменьшение и упрощение займёт много времени, я читал правила формула и в них сказано, что если вопрос общий то можно и без файла примера. На мой взгляд (который может быть ошибочным) мой вопрос можно отнести к категории общих, поэтому файл я не прикладывал.

В любом случае спасибо за помощь, одну ошибку уже исправили.

EDIT
Код опять не работает, после проверки появилось окно ошибки с цифрой 400. В итоге компилятор ругается на application-defined or object-defined error. Я попробую сделать файл пример.


Сообщение отредактировал Treider01 - Среда, 10.09.2014, 17:12
 
Ответить
Сообщение
Если речь о синтаксисе, то три оператора IF подразумевают три END IF
Если операторов IF много, используйте альтернативные варианты, SELECT CASE, например.
В любом случае нужен файл с примером


Спасибо насчёт трёх End if - компилятор на ругается, сейчас буду проверять как работает. Операторов IF около 30 и єто не предел + ещё в двух местах используется ещё больше операторов поэтому альтернативный вариант насчёт SELECT CASE - я попробую его использовать, но так как у меня ещё основная работа много времени отнимает, то я ищу лёгкие и быстрые пути решения.

Насчёт файла (файлов на самом деле, отличаются конфигурацией и набором формул), то он огромен, его уменьшение и упрощение займёт много времени, я читал правила формула и в них сказано, что если вопрос общий то можно и без файла примера. На мой взгляд (который может быть ошибочным) мой вопрос можно отнести к категории общих, поэтому файл я не прикладывал.

В любом случае спасибо за помощь, одну ошибку уже исправили.

EDIT
Код опять не работает, после проверки появилось окно ошибки с цифрой 400. В итоге компилятор ругается на application-defined or object-defined error. Я попробую сделать файл пример.

Автор - Treider01
Дата добавления - 10.09.2014 в 16:35
KuklP Дата: Среда, 10.09.2014, 17:03 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Вот на общий вопрос Елена и дала Вам исчерпывающий общий ответ
используйте ... SELECT CASE


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеВот на общий вопрос Елена и дала Вам исчерпывающий общий ответ
используйте ... SELECT CASE

Автор - KuklP
Дата добавления - 10.09.2014 в 17:03
Pelena Дата: Среда, 10.09.2014, 17:06 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 19373
Репутация: 4531 ±
Замечаний: ±

Excel 365 & Mac Excel
Про SELECT CASE есть статья


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПро SELECT CASE есть статья

Автор - Pelena
Дата добавления - 10.09.2014 в 17:06
Treider01 Дата: Среда, 10.09.2014, 17:12 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 1 ±
Замечаний: 0% ±

Excel 2003
Спасибо большое за помощь! А по первому вопросу будут комментарии?
 
Ответить
СообщениеСпасибо большое за помощь! А по первому вопросу будут комментарии?

Автор - Treider01
Дата добавления - 10.09.2014 в 17:12
AndreTM Дата: Среда, 10.09.2014, 17:41 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
А по первому вопросу будут комментарии?
Если будет хотя бы пример файлика (в соответствии с Правилами) - будут вам и ответы.
Самое интересное, что "макрос переноса" достаточно прост :)


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
А по первому вопросу будут комментарии?
Если будет хотя бы пример файлика (в соответствии с Правилами) - будут вам и ответы.
Самое интересное, что "макрос переноса" достаточно прост :)

Автор - AndreTM
Дата добавления - 10.09.2014 в 17:41
Treider01 Дата: Четверг, 11.09.2014, 14:18 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 1 ±
Замечаний: 0% ±

Excel 2003
Добрый день!

Наконец прилагаю файл, надеюсь не слишком сложно, старался упростить.
И да у меня английский excel. Надеюсь єто не проблема.
Для меня основное понять, как єто сделать правильно, потому как от работающей программы, в которой я не разбираюсь, толку будет не много.

Спасибо за внимание!
К сообщению приложен файл: Example1.xls (23.0 Kb)


Сообщение отредактировал Treider01 - Четверг, 11.09.2014, 14:20
 
Ответить
СообщениеДобрый день!

Наконец прилагаю файл, надеюсь не слишком сложно, старался упростить.
И да у меня английский excel. Надеюсь єто не проблема.
Для меня основное понять, как єто сделать правильно, потому как от работающей программы, в которой я не разбираюсь, толку будет не много.

Спасибо за внимание!

Автор - Treider01
Дата добавления - 11.09.2014 в 14:18
ikki Дата: Четверг, 11.09.2014, 14:59 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
а макрос-то зачем?
особенно с учётом того, что вы синтаксис знать не хотите :)
можно всё прекрасно формулами сделать.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениеа макрос-то зачем?
особенно с учётом того, что вы синтаксис знать не хотите :)
можно всё прекрасно формулами сделать.

Автор - ikki
Дата добавления - 11.09.2014 в 14:59
Treider01 Дата: Четверг, 11.09.2014, 15:13 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 1 ±
Замечаний: 0% ±

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


Хммм. а где это я такое написал?

Однако отвечаю на ваш вопрос - у экселя ограничения на размер формулы и кол-во логических условий, для обоих вычислений представленных в файле формулы уже занимают два столбца. И это не предел. Я, надеюсь, ответил на ваш вопрос? Кроме того они очень сложны для восприятия и корректировки.


Сообщение отредактировал Treider01 - Четверг, 11.09.2014, 15:14
 
Ответить
Сообщение
а макрос-то зачем?
особенно с учётом того, что вы синтаксис знать не хотите
можно всё прекрасно формулами сделать.


Хммм. а где это я такое написал?

Однако отвечаю на ваш вопрос - у экселя ограничения на размер формулы и кол-во логических условий, для обоих вычислений представленных в файле формулы уже занимают два столбца. И это не предел. Я, надеюсь, ответил на ваш вопрос? Кроме того они очень сложны для восприятия и корректировки.

Автор - Treider01
Дата добавления - 11.09.2014 в 15:13
ikki Дата: Четверг, 11.09.2014, 15:20 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
Я, надеюсь, ответил на ваш вопрос?
нет.
в формулах на листах, ссылающихся на лист-источник, не может быть ничего сложного и длинного.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
Я, надеюсь, ответил на ваш вопрос?
нет.
в формулах на листах, ссылающихся на лист-источник, не может быть ничего сложного и длинного.

Автор - ikki
Дата добавления - 11.09.2014 в 15:20
Treider01 Дата: Четверг, 11.09.2014, 15:28 | Сообщение № 12
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 1 ±
Замечаний: 0% ±

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


Да, вы правы, если бы мне надо было ссылаться на данные, то всё возможно, однако мне их надо перенести, простая логика подсказывает что всё не просто так, если мой предыдущий ответ вас не удволетворил, то извините, не буду больше отнимать ваше время, спасибо за уделённое внимание моему вопросу.
 
Ответить
Сообщение
нет.
в формулах на листах, ссылающихся на лист-источник, не может быть ничего сложного и длинного.


Да, вы правы, если бы мне надо было ссылаться на данные, то всё возможно, однако мне их надо перенести, простая логика подсказывает что всё не просто так, если мой предыдущий ответ вас не удволетворил, то извините, не буду больше отнимать ваше время, спасибо за уделённое внимание моему вопросу.

Автор - Treider01
Дата добавления - 11.09.2014 в 15:28
ikki Дата: Четверг, 11.09.2014, 15:54 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

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

т.к. конкретики в файле не оч.много, а заполненных данных для примера - так и вообще нет, то и ответ носит несколько общий характер.
но комментарии я написал. надеюсь, сможете разобраться.
[vba]
Код
Sub ex()
     Dim lr&, i&, j1&, j3&, j4&
     j1 = 2: j3 = 2: j3 = 2 ' инициализация счётчиков листов-приёмников
     With Sheets("Data1")
         lr = .Cells(.Rows.Count, 1).End(xlUp).Row ' последняя заполненная строка в первом столбце
         For i = 3 To lr ' цикл по строкам исходного листа
             If .Cells(i, "v") = "А" Then
                 ' переносим на первый лист
                 j1 = j1 + 1
                 .Cells(i, "a").Copy Sheets(1).Cells(j1, "a") ' из столбца A в столбец A первого листа
                 .Cells(i, "b").Copy Sheets(1).Cells(j1, "d") ' из столбца B в столбец D первого листа
                 ' и т.д.
             Else
                 ' переносим на третий или четвёртый лист
                 If .Cells(i, "h") = 1 Then ' к примеру, какое-то условие по столбцк H
                     j3 = j3 + 1
                     .Cells(i, "a").Copy Sheets(3).Cells(j3, "a") ' из столбца A в столбец A третьего листа
                     .Cells(i, "e").Copy Sheets(3).Cells(j3, "b") ' из столбца E в столбец B третьего листа
                     ' и т.д.
                 Else
                     j4 = j4 + 1
                     .Cells(i, "a").Copy Sheets(4).Cells(j4, "a") ' из столбца A в столбец A третьего листа
                     .Cells(i, "e").Copy Sheets(4).Cells(j4, "b") ' из столбца E в столбец B третьего листа
                     ' и т.д.
                 End If
             End If
         Next
     End With
End Sub
[/vba]


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениефукакглупо.
Вы за советом пришли или губы надутые показывать?
в Вашем файле упоминается, что сейчас данные переносятся формулами, но подряд, и Вы потом удаляете ненужные строки.
эти формулы можно сразу написать так, чтобы ненужных строк не было.
и они достаточно простые.
в этом, собственно, и был вопрос.
если же Вам нужен именно макрос - так и пишите.

т.к. конкретики в файле не оч.много, а заполненных данных для примера - так и вообще нет, то и ответ носит несколько общий характер.
но комментарии я написал. надеюсь, сможете разобраться.
[vba]
Код
Sub ex()
     Dim lr&, i&, j1&, j3&, j4&
     j1 = 2: j3 = 2: j3 = 2 ' инициализация счётчиков листов-приёмников
     With Sheets("Data1")
         lr = .Cells(.Rows.Count, 1).End(xlUp).Row ' последняя заполненная строка в первом столбце
         For i = 3 To lr ' цикл по строкам исходного листа
             If .Cells(i, "v") = "А" Then
                 ' переносим на первый лист
                 j1 = j1 + 1
                 .Cells(i, "a").Copy Sheets(1).Cells(j1, "a") ' из столбца A в столбец A первого листа
                 .Cells(i, "b").Copy Sheets(1).Cells(j1, "d") ' из столбца B в столбец D первого листа
                 ' и т.д.
             Else
                 ' переносим на третий или четвёртый лист
                 If .Cells(i, "h") = 1 Then ' к примеру, какое-то условие по столбцк H
                     j3 = j3 + 1
                     .Cells(i, "a").Copy Sheets(3).Cells(j3, "a") ' из столбца A в столбец A третьего листа
                     .Cells(i, "e").Copy Sheets(3).Cells(j3, "b") ' из столбца E в столбец B третьего листа
                     ' и т.д.
                 Else
                     j4 = j4 + 1
                     .Cells(i, "a").Copy Sheets(4).Cells(j4, "a") ' из столбца A в столбец A третьего листа
                     .Cells(i, "e").Copy Sheets(4).Cells(j4, "b") ' из столбца E в столбец B третьего листа
                     ' и т.д.
                 End If
             End If
         Next
     End With
End Sub
[/vba]

Автор - ikki
Дата добавления - 11.09.2014 в 15:54
Treider01 Дата: Четверг, 11.09.2014, 16:11 | Сообщение № 14
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 1 ±
Замечаний: 0% ±

Excel 2003
Большое спасибо!

Вы не будете против если я задам несколько вопросов?

По поводу вашего комментария - я думал об этом, однако данные не копируются по порядку, иногда вообще хаотично, поэтому я остановился на этом варианте, с последующим удалением лишних строк по мере их образования, как на самом простом.

Спасибо вам за показанный пример.
 
Ответить
СообщениеБольшое спасибо!

Вы не будете против если я задам несколько вопросов?

По поводу вашего комментария - я думал об этом, однако данные не копируются по порядку, иногда вообще хаотично, поэтому я остановился на этом варианте, с последующим удалением лишних строк по мере их образования, как на самом простом.

Спасибо вам за показанный пример.

Автор - Treider01
Дата добавления - 11.09.2014 в 16:11
ikki Дата: Четверг, 11.09.2014, 16:17 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
Вы не будете против если я задам несколько вопросов?
а попробуйте! чем чёрт не шутит... :)

[p.s.]пс. прошу пардону за некоторую кажущуюся мою несерьёзность. этот только кажется. характер такой. на самом деле я ещё более несерьёзный[/p.s.]


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
Вы не будете против если я задам несколько вопросов?
а попробуйте! чем чёрт не шутит... :)

[p.s.]пс. прошу пардону за некоторую кажущуюся мою несерьёзность. этот только кажется. характер такой. на самом деле я ещё более несерьёзный[/p.s.]

Автор - ikki
Дата добавления - 11.09.2014 в 16:17
Treider01 Дата: Четверг, 11.09.2014, 16:34 | Сообщение № 16
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 1 ±
Замечаний: 0% ±

Excel 2003
1)Когда вы обявляете переменные - что значит знак & после каждой переменной?

2)j1 = 2: j3 = 2: j3 = 2 ' инициализация счётчиков листов-приёмников - Как я понял макрос будет проверять условие в столбце, на предмет соотвествия, если оно найдено, то он выполнит копирование, но сначала увеличит перменную на 1? Тогда для первого цикла любая из них станет равна 3 и копирование произойдет в третью строчку ?

3)Ещё не могли бы вы обьяснить как построен цикл, потому как такого я нигде не видел.

4) Sheets(4).Cells(j4, "b") - цифра 4 указывает на порядковый номер листа?

Большое спасибо за внимание.
 
Ответить
Сообщение1)Когда вы обявляете переменные - что значит знак & после каждой переменной?

2)j1 = 2: j3 = 2: j3 = 2 ' инициализация счётчиков листов-приёмников - Как я понял макрос будет проверять условие в столбце, на предмет соотвествия, если оно найдено, то он выполнит копирование, но сначала увеличит перменную на 1? Тогда для первого цикла любая из них станет равна 3 и копирование произойдет в третью строчку ?

3)Ещё не могли бы вы обьяснить как построен цикл, потому как такого я нигде не видел.

4) Sheets(4).Cells(j4, "b") - цифра 4 указывает на порядковый номер листа?

Большое спасибо за внимание.

Автор - Treider01
Дата добавления - 11.09.2014 в 16:34
ikki Дата: Четверг, 11.09.2014, 17:05 | Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
1) краткий способ объявления некоторых типов. i& - то же самое, что i As Long
2) да
3) от третьей строки до последней заполненной. обычный цикл со счётчиком. (или я вопрос не понял).
4) да


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение1) краткий способ объявления некоторых типов. i& - то же самое, что i As Long
2) да
3) от третьей строки до последней заполненной. обычный цикл со счётчиком. (или я вопрос не понял).
4) да

Автор - ikki
Дата добавления - 11.09.2014 в 17:05
Treider01 Дата: Четверг, 11.09.2014, 17:15 | Сообщение № 18
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 1 ±
Замечаний: 0% ±

Excel 2003
Т.е. если я переставлю счётчик переменных вниз, после копирования, он увеличит переменную после копирования? Просто странно начинать копирование с третьей строчки, а не со второй.

Большое спасибо вам за код, на данный момент переписываю его, компилятор не ругается и пока всё хорошо.

Для меня более менее обычный цикл - это тот, что я использовал изначально - Do while.
 
Ответить
СообщениеТ.е. если я переставлю счётчик переменных вниз, после копирования, он увеличит переменную после копирования? Просто странно начинать копирование с третьей строчки, а не со второй.

Большое спасибо вам за код, на данный момент переписываю его, компилятор не ругается и пока всё хорошо.

Для меня более менее обычный цикл - это тот, что я использовал изначально - Do while.

Автор - Treider01
Дата добавления - 11.09.2014 в 17:15
ikki Дата: Четверг, 11.09.2014, 17:41 | Сообщение № 19
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
странно начинать копирование с третьей строчки, а не со второй
эт Вы мягко выразились ещё...
но дело в том, что именно в таком виде у Вас данные на листе Data1 - первая строка заголовки, потом пустая строка, потом данные пошли.

если я переставлю счётчик переменных вниз, после копирования, он увеличит переменную после копирования?
да


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
странно начинать копирование с третьей строчки, а не со второй
эт Вы мягко выразились ещё...
но дело в том, что именно в таком виде у Вас данные на листе Data1 - первая строка заголовки, потом пустая строка, потом данные пошли.

если я переставлю счётчик переменных вниз, после копирования, он увеличит переменную после копирования?
да

Автор - ikki
Дата добавления - 11.09.2014 в 17:41
Treider01 Дата: Четверг, 11.09.2014, 17:59 | Сообщение № 20
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 1 ±
Замечаний: 0% ±

Excel 2003
эт Вы мягко выразились ещё...
но дело в том, что именно в таком виде у Вас данные на листе Data1 - первая строка заголовки, потом пустая строка, потом данные пошли.


Простите, запарился и забыл обозначить что это не данные, а формат данных. Я подумал, что это может быть важно.

Итак я переставил часть значений и всё было хорошо, но опять вылетела ошибка 400, которая в итоге опять же обозначила application-defined or object-defined error. Жизнь моя полна боли и печали.

EDIT:

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


Сообщение отредактировал Treider01 - Четверг, 11.09.2014, 18:10
 
Ответить
Сообщение
эт Вы мягко выразились ещё...
но дело в том, что именно в таком виде у Вас данные на листе Data1 - первая строка заголовки, потом пустая строка, потом данные пошли.


Простите, запарился и забыл обозначить что это не данные, а формат данных. Я подумал, что это может быть важно.

Итак я переставил часть значений и всё было хорошо, но опять вылетела ошибка 400, которая в итоге опять же обозначила application-defined or object-defined error. Жизнь моя полна боли и печали.

EDIT:

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

Автор - Treider01
Дата добавления - 11.09.2014 в 17:59
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

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