Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2013, 22:16   #1
psybehemoth
Пользователь
 
Регистрация: 01.06.2013
Сообщений: 14
По умолчанию макрос VBA в VB

Уважаемые специалисты!
Прошу помочь в переводом макроса на VB (полностью или частями)
Сам, похоже не справлюсь

Код:
Sub Massive()
 
 'Задается некая "форма" на листе1 и распостраняется на диапазон
 
    Workbooks.Add
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "                             "
    Range("C1").Select
    ActiveCell.FormulaR1C1 = " "
    Range("E1").Select
    ActiveCell.FormulaR1C1 = "          "
    Range("F1").Select
    ActiveCell.FormulaR1C1 = "G"
    Range("G1").Select
    ActiveCell.FormulaR1C1 = "        "
    Range("I1").Select
    ActiveCell.FormulaR1C1 = " "
    Range("A1:K1").Select
    Selection.AutoFill Destination:=Range("A1:K25000"), Type:=xlFillDefault
    Range("A1:K25000").Select
    Sheets("Лист2").Select
 
    'Импорт данных на лист2
    
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\LITER\Temp\step1.txt", _
        Destination:=Range("$A$1"))
        .Name = "step1"
        .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 = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileOtherDelimiter = ","
        .TextFileColumnDataTypes = Array(1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
    
    'Замена в столбце
    Columns("A:A").Select
    Selection.Replace What:="  ", Replacement:=" ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        
   'копирование столбца на лист1
    Selection.Copy
    Sheets("Лист1").Select
    Columns("J:J").Select
    ActiveSheet.Paste
    
'диапазон сохраняется как .txt
    Range("A1:K25000").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Лист3").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ChDir "C:\"
    ActiveWorkbook.SaveAs Filename:="C:\step2.txt", FileFormat:= _
    ActiveWorkbook.Save
    xlText , CreateBackup:=False
End Sub
Спасибо)
psybehemoth вне форума Ответить с цитированием
Старый 07.06.2013, 10:05   #2
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

По-моему легче заново написать уже на VB. Судя по всему, задача не требует Excel при решении. Попробуйте просто написать, что Вам нужно.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 07.06.2013, 15:26   #3
psybehemoth
Пользователь
 
Регистрация: 01.06.2013
Сообщений: 14
По умолчанию

Здесь я описал часть, с которой пока не могу справиться. Полный алгоритм намного больше и требует обращения не только к Excel, но и к Word. Так уж получилось
psybehemoth вне форума Ответить с цитированием
Старый 07.06.2013, 15:48   #4
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Ну, при желании, можно в самом начале написать:

Код:
Set EA = CreateObject("Excel.Application")
EA.Workbooks.Add
...
и т.д. Если не оптимизировать ваш код вообще.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 07.06.2013, 16:34   #5
psybehemoth
Пользователь
 
Регистрация: 01.06.2013
Сообщений: 14
По умолчанию

Третьи сутки без отрыва от компа сижу. Сегодня отдохнул, перечитал тему и понял, что запарился) Действительно, проще написать новый, со всякими там QueryTable и пр.
Простите, запарился)
Тему можно закрыть по причине бредовости)
psybehemoth вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Excel макрос VBA Григорий-21 Помощь студентам 1 12.04.2013 09:28
Макрос VBA Donix Microsoft Office Word 4 08.04.2011 11:01
макрос VBA salvafion Фриланс 1 05.09.2009 18:06
VBA. Макрос. NitriNKa Помощь студентам 2 18.05.2009 16:50
макрос VBA Excel Bor Microsoft Office Excel 5 25.01.2008 12:20