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

Вход

Регистрация

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

 

= Мир MS Excel/Условие перед тем как копировать данные - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вопросы по VB, VBS, VB.net » Условие перед тем как копировать данные
Условие перед тем как копировать данные
cresh12 Дата: Вторник, 22.09.2015, 16:01 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день. Помогите пожалуйста решить проблему. Есть книга с данными ms21, в ней есть столбец Z (Номенклатурный номер). Необходимо чтобы при копировании из одной книги в другую мы проверяли этот столбец, и те строки в которых данный столбец пустой не копировались. Надеюсь на Вашу помощь. Своих знаний к сожалению не хватает( Спасибо. Прикрепляю исходный файл.
[vba]
Код
Private Sub Command1_Click()

         Dim objExcel, objWorkbook
         Set objExcel = CreateObject("EXCEL.APPLICATION")
             objExcel.Visible = False
'Ïóòü ê èñõîäíîìó ôàéëó
Set objWorkbook = objExcel.Workbooks.Open("C:\Users\Varina_LI\Desktop\ïðèìåð\ms21.xlsx")

Dim d As Long
Application.ScreenUpdating = False
        Dim shSrc As Worksheet, shRes As Worksheet
        Dim lrRes As Long
        Dim New_Wb As Workbook
        Dim i As Integer
        Dim x As Integer
        Dim result As Integer
        Application.ScreenUpdating = False
        Set New_Wb = Workbooks.Add
        New_Wb.Activate
        'Ïóòü ãäå ñîçäàåòñÿ íîâûé ôàéë
        New_Wb.SaveAs FileName:="C:\Users\Varina_LI\Desktop\ïðèìåð\maket17_ms21.xlsx"
        New_Wb.Close True
        Set shSrc = ActiveSheet
        'Äîëæíû ñîâïàäàòü
        Set shRes = Workbooks.Open("C:\Users\Varina_LI\Desktop\ïðèìåð\maket17_ms21.xlsx").Worksheets(1)
        Range("A1") = "MAK"
        Range("B1") = "PACH"
        Range("C1") = "IZ"
        Range("D1") = "MOD"
        Range("E1") = "NSP"
        Range("F1") = "NDT"
        Range("G1") = "SHPR"
        Range("H1") = "KSB"
        Range("I1") = "KIZ"
        Range("J1") = "WES"
        Range("K1") = "SWW"
        Range("L1") = "SOG"
        Range("M1") = "SHP"
        Range("N1") = "EI"
        Range("O1") = "NNM"
        Range("P1") = "NOR"
        Range("Q1") = "GOP"
        Range("R1") = "ZPD"
        Range("S1") = "Z0"
        Range("T1") = "Z1"
        Range("U1") = "Z2"
        Range("V1") = "Z3"
        Range("W1") = "Z4"
        Range("X1") = "Z5"
        Range("Y1") = "NDOC"
        Range("Z1") = "PROB"
        Range("AA1") = "VER"
          
        Rows("1:1").Select
        With Selection
            .HorizontalAlignment = xlGeneral
            .VerticalAlignment = xlCenter
            .WrapText = True
        End With
          
          
         lrRes = shRes.Cells.Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
            SearchDirection:=xlPrevious, MatchCase:=False, SearchFormat:=False).Row + 1
                
        shSrc.Activate
        d = shSrc.Cells(Rows.Count, 5).End(xlUp).Row

        shRes.Range("A2 :A" & d & "") = "17"
        shRes.Range("B2 :B" & d & "") = "001"
        shRes.Range("C2 :C" & d & "") = "2"
        shRes.Range("D2 :D" & d & "") = "11"
        shRes.Range("G2 :G" & d & "") = "11"
        shRes.Range("M2 :M" & d & "") = "00"
        shRes.Range("AA2 :AA" & d & "") = "1"
            
        shSrc.Range("B2:B" & d & "").Copy
        shRes.Cells(lrRes, 5).PasteSpecial xlPasteValues
        shSrc.Range("C2:C" & d & "").Copy
        shRes.Cells(lrRes, 6).PasteSpecial xlPasteValues
        shSrc.Range("J2:J" & d & "").Copy
        shRes.Cells(lrRes, 8).PasteSpecial xlPasteValues
        shSrc.Range("K2:K" & d & "").Copy
        shRes.Cells(lrRes, 9).PasteSpecial xlPasteValues
        shSrc.Range("L2:L" & d & "").Copy
        shRes.Cells(lrRes, 10).PasteSpecial xlPasteValues
        shSrc.Range("N2:N" & d & "").Copy
        shRes.Cells(lrRes, 11).PasteSpecial xlPasteValues
        shSrc.Range("O2:O" & d & "").Copy
        shRes.Cells(lrRes, 12).PasteSpecial xlPasteValues
        shSrc.Range("Y2:Y" & d & "").Copy
        shRes.Cells(lrRes, 14).PasteSpecial xlPasteValues
        shSrc.Range("Z2:Z" & d & "").Copy
        shRes.Cells(lrRes, 15).PasteSpecial xlPasteValues
        shSrc.Range("AC2:AC" & d & "").Copy
        shRes.Cells(lrRes, 16).PasteSpecial xlPasteValues
        shSrc.Range("AI2:AI" & d & "").Copy
        shRes.Cells(lrRes, 17).PasteSpecial xlPasteValues
        shSrc.Range("AJ2:AJ" & d & "").Copy
        shRes.Cells(lrRes, 18).PasteSpecial xlPasteValues
        shSrc.Range("AK2:AK" & d & "").Copy
        shRes.Cells(lrRes, 19).PasteSpecial xlPasteValues
        shSrc.Range("AL2:AL" & d & "").Copy
        shRes.Cells(lrRes, 20).PasteSpecial xlPasteValues
        shSrc.Range("AM2:AM" & d & "").Copy
        shRes.Cells(lrRes, 21).PasteSpecial xlPasteValues
        shSrc.Range("AN2:AN" & d & "").Copy
        shRes.Cells(lrRes, 22).PasteSpecial xlPasteValues
        shSrc.Range("AO2:AO" & d & "").Copy
        shRes.Cells(lrRes, 23).PasteSpecial xlPasteValues
        shSrc.Range("AP2:AP" & d & "").Copy
        shRes.Cells(lrRes, 24).PasteSpecial xlPasteValues

        Application.CutCopyMode = False
        shRes.Parent.Close 1
        Application.ScreenUpdating = True
        MsgBox "Ìàêåò 17 äëÿ ÌÑ21 óñïåøíî ñôîðìèðîâàí"
        objExcel.ActiveWorkbook.Close savechanges:=False
End Sub
[/vba]
[moder]Тема закрыта. Дублирование[/moder]
К сообщению приложен файл: ms21.xlsx (57.5 Kb)


Сообщение отредактировал Pelena - Вторник, 22.09.2015, 16:55
 
Ответить
СообщениеДобрый день. Помогите пожалуйста решить проблему. Есть книга с данными ms21, в ней есть столбец Z (Номенклатурный номер). Необходимо чтобы при копировании из одной книги в другую мы проверяли этот столбец, и те строки в которых данный столбец пустой не копировались. Надеюсь на Вашу помощь. Своих знаний к сожалению не хватает( Спасибо. Прикрепляю исходный файл.
[vba]
Код
Private Sub Command1_Click()

         Dim objExcel, objWorkbook
         Set objExcel = CreateObject("EXCEL.APPLICATION")
             objExcel.Visible = False
'Ïóòü ê èñõîäíîìó ôàéëó
Set objWorkbook = objExcel.Workbooks.Open("C:\Users\Varina_LI\Desktop\ïðèìåð\ms21.xlsx")

Dim d As Long
Application.ScreenUpdating = False
        Dim shSrc As Worksheet, shRes As Worksheet
        Dim lrRes As Long
        Dim New_Wb As Workbook
        Dim i As Integer
        Dim x As Integer
        Dim result As Integer
        Application.ScreenUpdating = False
        Set New_Wb = Workbooks.Add
        New_Wb.Activate
        'Ïóòü ãäå ñîçäàåòñÿ íîâûé ôàéë
        New_Wb.SaveAs FileName:="C:\Users\Varina_LI\Desktop\ïðèìåð\maket17_ms21.xlsx"
        New_Wb.Close True
        Set shSrc = ActiveSheet
        'Äîëæíû ñîâïàäàòü
        Set shRes = Workbooks.Open("C:\Users\Varina_LI\Desktop\ïðèìåð\maket17_ms21.xlsx").Worksheets(1)
        Range("A1") = "MAK"
        Range("B1") = "PACH"
        Range("C1") = "IZ"
        Range("D1") = "MOD"
        Range("E1") = "NSP"
        Range("F1") = "NDT"
        Range("G1") = "SHPR"
        Range("H1") = "KSB"
        Range("I1") = "KIZ"
        Range("J1") = "WES"
        Range("K1") = "SWW"
        Range("L1") = "SOG"
        Range("M1") = "SHP"
        Range("N1") = "EI"
        Range("O1") = "NNM"
        Range("P1") = "NOR"
        Range("Q1") = "GOP"
        Range("R1") = "ZPD"
        Range("S1") = "Z0"
        Range("T1") = "Z1"
        Range("U1") = "Z2"
        Range("V1") = "Z3"
        Range("W1") = "Z4"
        Range("X1") = "Z5"
        Range("Y1") = "NDOC"
        Range("Z1") = "PROB"
        Range("AA1") = "VER"
          
        Rows("1:1").Select
        With Selection
            .HorizontalAlignment = xlGeneral
            .VerticalAlignment = xlCenter
            .WrapText = True
        End With
          
          
         lrRes = shRes.Cells.Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
            SearchDirection:=xlPrevious, MatchCase:=False, SearchFormat:=False).Row + 1
                
        shSrc.Activate
        d = shSrc.Cells(Rows.Count, 5).End(xlUp).Row

        shRes.Range("A2 :A" & d & "") = "17"
        shRes.Range("B2 :B" & d & "") = "001"
        shRes.Range("C2 :C" & d & "") = "2"
        shRes.Range("D2 :D" & d & "") = "11"
        shRes.Range("G2 :G" & d & "") = "11"
        shRes.Range("M2 :M" & d & "") = "00"
        shRes.Range("AA2 :AA" & d & "") = "1"
            
        shSrc.Range("B2:B" & d & "").Copy
        shRes.Cells(lrRes, 5).PasteSpecial xlPasteValues
        shSrc.Range("C2:C" & d & "").Copy
        shRes.Cells(lrRes, 6).PasteSpecial xlPasteValues
        shSrc.Range("J2:J" & d & "").Copy
        shRes.Cells(lrRes, 8).PasteSpecial xlPasteValues
        shSrc.Range("K2:K" & d & "").Copy
        shRes.Cells(lrRes, 9).PasteSpecial xlPasteValues
        shSrc.Range("L2:L" & d & "").Copy
        shRes.Cells(lrRes, 10).PasteSpecial xlPasteValues
        shSrc.Range("N2:N" & d & "").Copy
        shRes.Cells(lrRes, 11).PasteSpecial xlPasteValues
        shSrc.Range("O2:O" & d & "").Copy
        shRes.Cells(lrRes, 12).PasteSpecial xlPasteValues
        shSrc.Range("Y2:Y" & d & "").Copy
        shRes.Cells(lrRes, 14).PasteSpecial xlPasteValues
        shSrc.Range("Z2:Z" & d & "").Copy
        shRes.Cells(lrRes, 15).PasteSpecial xlPasteValues
        shSrc.Range("AC2:AC" & d & "").Copy
        shRes.Cells(lrRes, 16).PasteSpecial xlPasteValues
        shSrc.Range("AI2:AI" & d & "").Copy
        shRes.Cells(lrRes, 17).PasteSpecial xlPasteValues
        shSrc.Range("AJ2:AJ" & d & "").Copy
        shRes.Cells(lrRes, 18).PasteSpecial xlPasteValues
        shSrc.Range("AK2:AK" & d & "").Copy
        shRes.Cells(lrRes, 19).PasteSpecial xlPasteValues
        shSrc.Range("AL2:AL" & d & "").Copy
        shRes.Cells(lrRes, 20).PasteSpecial xlPasteValues
        shSrc.Range("AM2:AM" & d & "").Copy
        shRes.Cells(lrRes, 21).PasteSpecial xlPasteValues
        shSrc.Range("AN2:AN" & d & "").Copy
        shRes.Cells(lrRes, 22).PasteSpecial xlPasteValues
        shSrc.Range("AO2:AO" & d & "").Copy
        shRes.Cells(lrRes, 23).PasteSpecial xlPasteValues
        shSrc.Range("AP2:AP" & d & "").Copy
        shRes.Cells(lrRes, 24).PasteSpecial xlPasteValues

        Application.CutCopyMode = False
        shRes.Parent.Close 1
        Application.ScreenUpdating = True
        MsgBox "Ìàêåò 17 äëÿ ÌÑ21 óñïåøíî ñôîðìèðîâàí"
        objExcel.ActiveWorkbook.Close savechanges:=False
End Sub
[/vba]
[moder]Тема закрыта. Дублирование[/moder]

Автор - cresh12
Дата добавления - 22.09.2015 в 16:01
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вопросы по VB, VBS, VB.net » Условие перед тем как копировать данные
  • Страница 1 из 1
  • 1
Поиск:

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