کپی یک محدوده در سطر با vba

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • علی فاطمی

    • 2014/02/17
    • 523
    • 51.00

    کپی یک محدوده در سطر با vba

    عرض سلام خدمت همه عزیران
    لطفا به دستور زیر توجه بفرمایید :


    Sub Row()
    Dim lastrowair As Long, lastcolumnair As Long
    lastrowair = Sheet3.Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To lastrowair
    If Sheet3.Cells(i, 1) = Sheet2.Range("B2") Then

    در شیت 2 سلول b2 یک لیست از ستون A در شیت 3 تعریف کردم که حاوی یه سری کد محصول می باشد .
    با انتخاب کد محصول در این لیست و دستور فوق اکسل تو شیت3 و ستون A می گرده و کد محصول رو پیدا می کنه ( مثلا من کد M144T رو می دم که در ردیف 4 ستون قرارداره)
    حالا با این دستور میره و آخرین رکورد اون کد محصول رو در سطر روبروی خودش رو هم پیدا می کنه.

    lastcolumnair = Sheet3.Cells(i, Columns.Count).End(xlToLeft).Column


    من می خوام دستوری بنویسم که اطلاعات اون سطر رو کپی کنم.
    با دستور زیر میشه کل سطر رو کپی کرد :
    Sheet3.Cells(i, 2).EntireRow.Copy

    ولی من می خوام فقط محدوده ای که اطلاعات وجود داره رو کپی کنه . ( توی مثال بالا میشه ردیف 4 از ستون دومش تا ستون 64 )

    لطفا راهنمایی بفرمایید .

    متاسفانه چند روزه اصلا نمی دونم چرا نمیشه فایل آپلود کرد .

    با سپاس فراوان




    [FONT=tahoma][SIZE=2][B][COLOR=#800080][SIZE=3]در دنیا فقط یک نفر وجود دارد که باید از او بهتر باشید و آن کسی نیست جز گذشته خودتان[/SIZE] [/COLOR][/B][/SIZE][/FONT]


    [CENTER][SIZE=7][FONT=franklin gothic medium][/FONT] [/SIZE]
    [/CENTER]
  • Ali Parsaei
    مدير تالارتوابع اکسل

    • 2013/11/18
    • 1522
    • 71.67

    #2
    سلام علي آقاي گل،
    البته چون فايل نشده آپلود کنيد يک کم فهميدن مطلب سخته ولي ببينيد به جاي Sheet3.Cells(i, 2).EntireRow.Copy اگر از کد زير استفاده کنيد درست ميشه؟

    کد PHP:
    Sheet3.Range(Cells(i2), Cells(i2).End(xlToRight)).Copy 
    [SIGPIC][/SIGPIC]

    کامنت

    • علی فاطمی

      • 2014/02/17
      • 523
      • 51.00

      #3
      نوشته اصلی توسط Ali Parsaei
      سلام علي آقاي گل،
      البته چون فايل نشده آپلود کنيد يک کم فهميدن مطلب سخته ولي ببينيد به جاي Sheet3.Cells(i, 2).EntireRow.Copy اگر از کد زير استفاده کنيد درست ميشه؟

      کد PHP:
      Sheet3.Range(Cells(i2), Cells(i2).End(xlToRight)).Copy 
      جناب پارسایی عزیز سلام وقت شما بخیر
      ممنون از توجه شما .
      ولی همچنان جواب نگرفتم.
      Click image for larger version

Name:	نمونه.jpg
Views:	1
Size:	155.0 کیلو بایت
ID:	139606Click image for larger version

Name:	نمونه 2.jpg
Views:	1
Size:	369.4 کیلو بایت
ID:	139607

      Sub copyrows2()
      Dim lastrowair As Long, lastcolumnair As Long
      lastrowair = Sheet3.Cells(Rows.Count, 1).End(xlUp).Row
      For i = 2 To lastrowair
      If Sheet3.Cells(i, 1) = Sheet2.Range("B2") Then


      lastcolumnair = Sheet3.Cells(i, Columns.Count).End(xlToLeft).Column


      Sheet3.Range(Cells(i, 2), Cells(i, 2).End(xlToRight)).Copy


      Sheet1.Range("c4").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
      False, Transpose:=True


      End If


      Next i


      Sheets("Sheet2").Select


      End Sub



      Last edited by علی فاطمی; 2023/02/20, 09:01.
      [FONT=tahoma][SIZE=2][B][COLOR=#800080][SIZE=3]در دنیا فقط یک نفر وجود دارد که باید از او بهتر باشید و آن کسی نیست جز گذشته خودتان[/SIZE] [/COLOR][/B][/SIZE][/FONT]


      [CENTER][SIZE=7][FONT=franklin gothic medium][/FONT] [/SIZE]
      [/CENTER]

      کامنت

      • علی فاطمی

        • 2014/02/17
        • 523
        • 51.00

        #4
        عرض سلام خدمت همه عزیزان
        و تشکر ویژه از استاد علی پارسایی عزیز
        من مشکلم رو به صورت زیر حل کردیم


        کد:
        Sub copyrows2()
        
        
        Dim lastrowair As Long, lastcolumnair As Long
        Dim aaa As String
        lastrowair = Sheet3.Cells(Rows.Count, 1).End(xlUp).Row
        For i = 2 To lastrowair
        If Sheet3.Cells(i, 1) = Sheet2.Range("B2") Then
        
        
        lastcolumnair = Sheet3.Cells(i, Columns.Count).End(xlToLeft).Column
        
        
        aaa = Split(Cells(i, lastcolumnair).Address, "$")(1)
        Sheet3.Range("B" & i & ":" & aaa & i).Copy
        Sheet1.Range("c5").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                False, Transpose:=True
        
        
        End If
        
        
        Next i
        
        
        Sheets("Sheet2").Select
        
        
        
        
        End Sub

        امیدوارم برای کس دیگه ای هم مفید باشه .
        [FONT=tahoma][SIZE=2][B][COLOR=#800080][SIZE=3]در دنیا فقط یک نفر وجود دارد که باید از او بهتر باشید و آن کسی نیست جز گذشته خودتان[/SIZE] [/COLOR][/B][/SIZE][/FONT]


        [CENTER][SIZE=7][FONT=franklin gothic medium][/FONT] [/SIZE]
        [/CENTER]

        کامنت

        چند لحظه..