|
|
|
Код VBA
|
|||
|---|---|---|---|
|
#18+
Посмотрите, в чем косяк. Когда доходит до строчки ActiveSheet.Paste Выдает ошибку, типа команда завершена но с ошибкой. Почему???? ich = InputBox("", "") For i = 2 To 13 Columns(i).Select Selection.Copy Sheets("01." & TextBox1.Value).Select If i = 2 Then Range("F" & ich).Select ActiveSheet.Paste Range("H" & ich).Select ActiveSheet.Paste End If If i = 3 Then Range("C" & ich).Select ActiveSheet.Paste End If If i = 4 Then Range("L" & ich).Select ActiveSheet.Paste End If If i = 5 Then Range("M" & ich).Select ActiveSheet.Paste End If If i = 6 Then Range("K" & ich).Select ActiveSheet.Paste Range("D" & ich).Select ActiveSheet.Paste End If If i = 8 Then Range("I" & ich).Select ActiveSheet.Paste End If If i = 9 Then Range("E" & ich).Select ActiveSheet.Paste End If If i = 11 Then Range("G" & ich).Select ActiveSheet.Paste End If If i = 13 Then Range("J" & ich).Select ActiveSheet.Paste End If Sheets("Temp").Select Next i ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2006, 14:26:18 |
|
||
|
Код VBA
|
|||
|---|---|---|---|
|
#18+
Думаю следует добавить. ДАнные сначала копируются на лист TEMP, оттуда, по приведенной выше процедуре они вставляются в лист, который и требуется. ДАнные вставляются, но ошибка то появляется. ??? Вот в этом и загадка, почему есть ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2006, 14:32:34 |
|
||
|
Код VBA
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2006, 15:18:03 |
|
||
|
Код VBA
|
|||
|---|---|---|---|
|
#18+
Спасибо vkodor. Код клевый. Особено определения числа строк. НО есть неточности. строку mySh = "01." & Sheets("Temp").TextBox1.Value слдует правильно рассматривать как mySh = "01." & TextBox1.Value Далее. И самое главное. При выполенении строки Range(Cells(1, i), Cells(nis, i)).Copy Destination:=Sheets(mySh).Range("F" & ich) Что фактически первая строка цикла выдается ошибка, что метод копирования завершен неверно. Вот такая фигня. Почему он с одного листа не может то скопировать на другой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2006, 07:19:44 |
|
||
|
Код VBA
|
|||
|---|---|---|---|
|
#18+
Это весь код. Хедп че то говорит про открытые книги, типа говорит что ошибка неверного завершения может быть если идет попытка открытия 5 книги, хотя реально открыто 3. ПОМОГИТЕЕЕЕЕЕЕ!!!!! Sheets("01." & TextBox1.Value).Select pos = 10 While Cells(pos, 1) <> "" pos = pos + 1 Wend ich = pos Sheets.Add ActiveSheet.Name = "Temp" With ActiveSheet.QueryTables.Add(Connection:=Array( _ "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=C:\Vek" _ , _ "sel\ðååñòð ïî ñîáñòâåííûì âåêñåëÿì.xls;Mode=Share Deny Write;Extended Properties=""HDR=YES;"";Jet OLEDB:System database="""";Jet OLE" _ , _ "DB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global P" _ , _ "artial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False" _ , _ ";Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Je" _ , "t OLEDB:SFP=False"), Destination:=Range("A1")) .CommandType = xlCmdTable .CommandText = Array("'Îáùèé ___$'") .Name = "ðååñòð ïî ñîáñòâåííûì âåêñåëÿì" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .PreserveColumnInfo = True .SourceDataFile = _ "C:\Documents and Settings\Denis Dyagilev\Ðàáî÷èé ñòîë\Veksel\ðååñòð ïî ñîáñòâåííûì âåêñåëÿì.xls" .Refresh BackgroundQuery:=False End With Range("A1:X1").Select Selection.ClearContents Columns("R:R").Select Selection.AutoFilter Field:=1, Criteria1:="=Ó", Operator:=xlAnd Columns("B:B").Select 'Selection.AutoFilter Field:=1, Criteria1:=">=01." & TextBox1.Value, Operator:=xlAnd _ ' , Criteria2:="<=31." & TextBox1.Value Dim mySh As String mySh = "01." & TextBox1.Value For i = 2 To 13 nis = Cells(Rows.Count, i).End(xlUp).Row If i = 2 Then Range(Cells(1, i), Cells(nis, i)).Copy Destination:=Sheets(mySh).Range("F" & ich) Range(Cells(1, i), Cells(nis, i)).Copy Destination:=Sheets(mySh).Range("H" & ich) End If If i = 3 Then Range(Cells(1, i), Cells(nis, i)).Copy Destination:=Sheets(mySh).Range("C" & ich) If i = 4 Then Range(Cells(1, i), Cells(nis, i)).Copy Destination:=Sheets(mySh).Range("L" & ich) If i = 5 Then Range(Cells(1, i), Cells(nis, i)).Copy Destination:=Sheets(mySh).Range("M" & ich) If i = 6 Then Range(Cells(1, i), Cells(nis, i)).Copy Destination:=Sheets(mySh).Range("K" & ich) Range(Cells(1, i), Cells(nis, i)).Copy Destination:=Sheets(mySh).Range("D" & ich) End If If i = 8 Then Range(Cells(1, i), Cells(nis, i)).Copy Destination:=Sheets(mySh).Range("I" & ich) If i = 9 Then Range(Cells(1, i), Cells(nis, i)).Copy Destination:=Sheets(mySh).Range("E" & ich) If i = 11 Then Range(Cells(1, i), Cells(nis, i)).Copy Destination:=Sheets(mySh).Range("G" & ich) If i = 13 Then Range(Cells(1, i), Cells(nis, i)).Copy Destination:=Sheets(mySh).Range("J" & ich) Next i End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2006, 08:56:10 |
|
||
|
Код VBA
|
|||
|---|---|---|---|
|
#18+
DenDYСпасибо vkodor. Код клевый. Особено определения числа строк. НО есть неточности. строку mySh = "01." & Sheets("Temp").TextBox1.Value слдует правильно рассматривать как mySh = "01." & TextBox1.Value Далее. И самое главное. При выполенении строки Range(Cells(1, i), Cells(nis, i)).Copy Destination:=Sheets(mySh).Range("F" & ich) Что фактически первая строка цикла выдается ошибка, что метод копирования завершен неверно. Вот такая фигня. Почему он с одного листа не может то скопировать на другой? Код: plaintext и лутше ссылаться по полному Код: plaintext Код: plaintext теперь про ошибку Код: plaintext если хчешь универсальности то надо делать так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2006, 09:27:44 |
|
||
|
Код VBA
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2006, 09:33:00 |
|
||
|
Код VBA
|
|||
|---|---|---|---|
|
#18+
Sheets("01." & TextBox1.Value).Select pos = 10 While Cells(pos, 1) <> "" pos = pos + 1 Wend ich = pos Workbooks.Open ("Ðååñòð ïî ñîáñòâåííûì âåêñåëÿì.xls") Range("A:X").Copy ActiveWorkbook.Close Sheets.Add ActiveSheet.Name = "Temp" Sheets("Temp").Select Здесь копируются данные с другой книгни. Сразу скажу. что программно вставить никак не получается. Я хз почему. ВЫдает ошибку все время что метод или обект не поддерждивается. ЗАхожу в книгу и просто нажимаю вставить (завершив выполнение кода и сразу все копируется. То есть в буфере олбмена записи есть. Как вставить вопрос?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 07:45:27 |
|
||
|
Код VBA
|
|||
|---|---|---|---|
|
#18+
если тебе нужны только значения (т.е. без форматов), то не обязательно пользоваться методом "Copy". можно так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 10:14:39 |
|
||
|
Код VBA
|
|||
|---|---|---|---|
|
#18+
При таком варианте остается проблема. При копировании поля которое находиться в тестовом формате но там находиться число типа 6723694573289553 когда копируется это число становиться 672369457000000000. Как избежать преобразования типа данных?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 14:42:07 |
|
||
|
Код VBA
|
|||
|---|---|---|---|
|
#18+
DenDYПри таком варианте остается проблема. При копировании поля которое находиться в тестовом формате но там находиться число типа 6723694573289553 когда копируется это число становиться 672369457000000000. Как избежать преобразования типа данных?? это не проблема решается одной строчкой Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 15:23:10 |
|
||
|
Код VBA
|
|||
|---|---|---|---|
|
#18+
Клево, Работает. Спасибо. А что за формат она ставит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 15:44:17 |
|
||
|
Код VBA
|
|||
|---|---|---|---|
|
#18+
DenDYКлево, Работает. Спасибо. А что за формат она ставит? текстовый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 16:18:42 |
|
||
|
Код VBA
|
|||
|---|---|---|---|
|
#18+
Dim fil As Variant Sheets.Add fil = Application.GetOpenFilename(" Файлы Excel (*.txt),*.txt", 1, "Выберете файл") If IsNull("Fil") = True Then Exit Sub With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;" & fil, _ Destination:=Range("A10")) .Name = "05СВ_1" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 1251 .TextFileStartRow = 10 .TextFileParseType = xlFixedWidth .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) .TextFileFixedColumnWidths = Array(11, 15, 11, 12, 14, 16, 13, 16, 14, 12, 12, 24, 40) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With Columns("B:B").ColumnWidth = 8.71 Columns("L:L").ColumnWidth = 16.29 Columns("L:L").Select Selection.NumberFormat = "0" Selection.ColumnWidth = 18.43 Selection.ColumnWidth = 20.57 Selection.ColumnWidth = 22.14 Range("F5").Select ActiveCell.FormulaR1C1 = "По состоянию на 01." & TextBox1.Value Range("F2").Select ActiveCell.FormulaR1C1 = "Журнал регистрации собственных векселей" ActiveSheet.Name = "01." & TextBox1.Value Range("A8:A9").Select With Selection .HorizontalAlignment = xlGeneral .VerticalAlignment = xlDistributed .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = True End With ActiveCell.FormulaR1C1 = "ID" With ActiveCell.Characters(Start:=1, Length:=2).Font .Name = "Arial" .FontStyle = "обычный" .Size = 10 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With У меня 2 кнопки. А вот при таком коде (тут считаывет из текстового файла данные) как сделать чтобы формат данных был текстовый? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 08:49:18 |
|
||
|
|

start [/forum/topic.php?fid=61&tid=2184745]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 344ms |

| 0 / 0 |
