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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2011, 10:58   #11
Rust_12
Пользователь
 
Регистрация: 10.12.2011
Сообщений: 25
По умолчанию

выложила ОЧЕНЬ!! ОЧЕНЬ! упрощенный аналог того, что есть в реале,чтобы не забивать никому голову, ибо у меня кода стопицот листов.. видимо от промежуточных действий,без которых можно обойтись.
Создала с нуля быстренько. В архиве 2 файла- файл-обработчик и исходные данные.
Да,у меня в 10 листах , в которых по 100500 столбцов в каждом , очень много "селектов".
В основном выделятся столбец по имени, копируется,переход на лист в который нужно вставить. Выделяется строго указанный столбец , затем происходит вставка.
В примерчик я закинула,как из исходника по указанным именам копируются данные в указанные колонки для каждого столбца результирующего листа.
Вот эти селекторы, наверное, и можно заменить на что-то более быстродействующее.
Удивительно, но там даже кодировка, о которой я писала выше, не барахлит)
Вложения
Тип файла: zip пример.zip (25.8 Кб, 8 просмотров)
Rust_12 вне форума Ответить с цитированием
Старый 20.12.2011, 11:41   #12
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Какая конечная цель всего этого действа?
Судя по примеру - можно всё сделать иначе и намного проще и быстрее.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 20.12.2011, 11:45   #13
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Я вот тоже не пойму ничего,а где тысячи столбцов?
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 20.12.2011, 12:26   #14
Rust_12
Пользователь
 
Регистрация: 10.12.2011
Сообщений: 25
По умолчанию

я же пометочку сделала:
Цитата:
Сообщение от Rust_12 Посмотреть сообщение
выложила ОЧЕНЬ!! ОЧЕНЬ! упрощенный аналог того, что есть в реале,чтобы не забивать никому голову, ибо у меня кода стопицот листов..
Смысл такой:
Нужно чтобы данные из столбцов со строго определенными именами копировались на др. лист в определенный столбец. это может быть столбец А, а может быть и М, Z, AB . Порядок расположения столбцов с исходными данными может быть какой угодно. Поэтому обращаться к данным этого столбца необходимо по заголовку. В исходном файле я давала колонкам имена и идентифицируя их, отмечала и копировала на др. лист через "селект".
Если есть конкретные предложения, как сделать это проще,- буду очень рада)))
Rust_12 вне форума Ответить с цитированием
Старый 20.12.2011, 12:42   #15
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Не понятно всё равно.
Давайте так - вот у Вас есть csv как в примере. Что Вам нужно из него выбрать? Коды после двоеточия из колонки "two"?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 20.12.2011, 13:13   #16
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Вот например - с поиском "two" и подстраховкой:

Код:
Option Explicit

Sub ImportCSV()
    Dim strText$, objFile As Object
    Dim arr, tmp, i&, ii&, k&
    Application.ScreenUpdating = False

    Set objFile = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\tmp\Rust_12\пример\Исходные_данные.csv", 1)
    strText = objFile.ReadAll
    objFile.Close

    arr = Split(strText, vbNewLine)
    tmp = Split(arr(0), ";")
    For i = 0 To UBound(tmp)
        If tmp(i) = "two" Then k = i: Exit For
    Next
    ReDim a(1 To UBound(arr) + 1, 1 To 1)

    For i = 1 To UBound(arr)
        If Len(arr(i)) Then
            ii = ii + 1
            tmp = Split(arr(i), ";")
            a(ii, 1) = Trim(Split(tmp(k), ":")(1))
        End If
    Next

    Workbooks.Add(1).Sheets(1).[a1].Resize(ii) = a

    Application.ScreenUpdating = True
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 20.12.2011, 19:53   #17
Rust_12
Пользователь
 
Регистрация: 10.12.2011
Сообщений: 25
По умолчанию

Хьюго Босс! =)
Спасибо большое!
Только зашла в сеть)))
Попробую Ваш вариант! )) Разберусь,- буду пользоваться только им, а не этими селектами)))
Хотя для меня, как для новичка в VBA, активно пытающегося разобраться во всем ,на текущий момент это слишком круто, правда)))
Не хочу никого больше отвлекать и забивать голову своим макросом, долго объяснять все тонкости)) и так тут уже поназадавала вопросов)
Спасибо!
Rust_12 вне форума Ответить с цитированием
Старый 20.12.2011, 21:18   #18
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Вы ещё не попробовали, а уже обещаете пользоваться
Я так и не понял (а Вы не говорите), что именно нужно в итоге получить.
Этот пример извлекает в новый файл в столбик только коды после двоеточия из колонки "two".
Путь к файлу:
Код:
"C:\tmp\Rust_12\пример\Исходные_данные.csv"
Кстати, код можно написать как скрипт vbs - будет результат по даблклику по файлу скрипта.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по поводу меню на сайте, html&css&js antoxa22 HTML и CSS 14 30.12.2011 11:02
Как передать файл используя TClientSocket & TServerSocket? Denutrror Работа с сетью в Delphi 1 04.04.2011 18:53
Ищу файл справки для O&O Defrag 11 Pro на русском языке triceratops Софт 0 29.04.2010 00:03
TForm & TImage & PNG & Прозрачность delphi_beginner Общие вопросы Delphi 7 19.09.2009 08:46
Просто не понимаю б чём проблема!!!!!!!(char* && index) artush1984 Общие вопросы C/C++ 12 30.05.2009 03:30