2010-11-06 2 views
0

У меня есть превосходство с одной колонкой, в которой есть информация о тендере. Каждая ячейка будет иметь значение какСоздание отдельного excel с использованием макроса

Колонка: Nokia ([Mode1.Number], OLD)

Колонка: Motorola ([Mode1.Number], OLD)

Колонка: Motorola ([mode2. Number], NEW)

Колонка: Motorola ([Mode3.Number], OLD)

Колонка: Samsung ([Mode2.Number] NEW)

мне нужно создать 2 выделиться из этого , Нужно иметь всю информацию о OLD, а вторая excel должна иметь всю информацию NEW.

Так что мой выход первенствует должен содержать

Первый Excel

Nokia ([Model1.Number])

Motorola ([Mode1.Number])

Motorola ([Mode3.Number ])

Второй Excel

Motorola ([Mode2.Nu mber])

Samsung ([Mode2.Number])

Пожалуйста, помогите мне .. Спасибо заранее ..

+0

любой может ответить на этот вопрос !!!! – Raj

+0

Вам нужны две разные рабочие книги или рабочие листы? Если это рабочие книги, как вы планируете управлять конфликтами имен между разными версиями книг? Какова частота, с которой вы планируете использовать этот макрос? Может ли новая книга удалить старую книгу? – 2010-11-06 20:32:50

+0

hi .. извините за поздний ответ. Да, мне нужны два отдельных листа excel, которые содержат данные, в которых есть OLD, и еще один, в котором есть NEW. Я совершенно новичок в этом. Не могли бы вы помочь мне. Спасибо заранее. Пожалуйста, – Raj

ответ

0

Выделите ячейки, содержащие данные, которые вы хотите скопировать, а затем запустить этот код

sub copystuff 
dim r as range 
dim tn as range 
im to as range 
dim wsNewTarget as worksheet 
dim wsOldTarget as worksheet 
dim wsSource as worksheet 
set wsSource = activesheet 
set wsNewtarget = activeworkbook.worksheets.add 
set wsoldtarget = activeworkbook.worksheets.add 
set tn = wsnewtarget.range("a1") 
set to =wsoldtarget.range("a1") 
for each r in wssource.selection 
    if imstr(r,"NEW")>0 then 
      tn=r 
      set tn = tn.offset(1,0) 
    else 
     to=r 
      set to = to.offset(1,0) 

    end if 
next r 
end sub 
+2

просмотрите строку 1 - Sub needs(), а строка 14 - imstr() не является действительной функцией VBA. Также вы могли бы объяснить, как в вашем коде последующие строки помещаются ниже друг друга, а не переписывают друг друга. В общем, я бы предположил, что код, размещенный здесь, должен запускаться по крайней мере через проверку редактора VBA для синтаксических ошибок и получения правильной капитализации. – MikeD

0
Sub SplitOldNew() 
Dim InRange As Range, OldRange As Range, NewRange As Range 
Dim Idx As Integer 

    Set InRange = Selection    ' select all cells to be split 
    Set OldRange = Worksheets("OLD").[A1] ' choose appropriate target entry points 
    Set NewRange = Worksheets("NEW").[A1] ' ... 
    Idx = 1        ' loop counter 

    Do While InRange(Idx, 1) <> "" 
     If InStr(1, InRange(Idx, 1), "OLD") <> 0 Then 
      DBInsert OldRange, InRange(Idx, 1) 
     Else 
      DBInsert NewRange, InRange(Idx, 1) 
     End If 
     Idx = Idx + 1 
    Loop 
End Sub 

Sub DBInsert(intoRange As Range, Arg As String) 
Dim Idx As Integer 

    Idx = 1        ' loop counter 
    Do While intoRange(Idx, 1) <> ""  ' find first blank row 
     Idx = Idx + 1 
    Loop 

    intoRange(Idx, 1) = Arg    ' write out 
End Sub 
Смежные вопросы