2016-03-04 69 views
-3

我真的是VBA的新手,需要一些幫助才能從一列中複製數據,在同一列中的數據之間使用均勻間隔的分區,並將其粘貼爲行。將VBA代碼複製到行中的部分代碼

我有一張有300張名片的Excel工作表,放在圖像1中。

每個名片是一個突出塊作爲在這個例子中:

picture

我需要一個VBA代碼以在列C和地點數據作爲行復制的頭A,B,C下, d,E,F。

是否有VBA代碼可以做這樣的事情?

任何幫助非常感謝!

+0

歡迎來到Stackoverflow。這個網站不是一個腳本寫作網站,供人們索取代碼,然後讓其他人爲他們開發它。話雖如此,這是你的第一篇文章,所以我已經回答了你的問題。嘗試通過在Excel中使用Macro記錄器來提出一些代碼,然後詢問有關如何使其正常工作的問題。在這裏享受你的時間! –

回答

1

這應該工作。

Option Explicit 
Sub TransposeBusinessCardData() 

     Dim BusinessCardDataSheet As Worksheet 
     'Replace BusinessCardSheet with the sheet name of your sheet 
     Set BusinessCardDataSheet = ThisWorkbook.Sheets("BusinessCardSheet") 
     Dim ResultSheet As Worksheet 
     'Replace ResultSheet with the sheet name of the sheet you want to paste the data in 
     Set ResultSheet = ThisWorkbook.Sheets("ResultSheet") 

     Dim LastRow As Long 
     LastRow = BusinessCardDataSheet.Cells(BusinessCardDataSheet.Rows.Count, "C").End(xlUp).Row 

     Dim RowReference As Long 
     Dim BusinessCardData As Range 
     Dim ResultRowRef As Long 

     'To paste from Row 2 on the ResultSheet 
     ResultRowRef = 2 

     'Step 7 Because there is 7 Rows between the start of each Business card 
     For RowReference = 2 To LastRow Step 7 

      BusinessCardDataSheet.Activate 
      Set BusinessCardData = BusinessCardDataSheet.Range(Cells(RowReference, "C"), Cells(RowReference + 5, "C")) 
      BusinessCardData.Copy 

      ResultSheet.Cells(ResultRowRef, "B").PasteSpecial Paste:=xlPasteAll, _ 
                    Operation:=xlNone, SkipBlanks:=False, _ 
                    Transpose:=True 
      ResultRowRef = ResultRowRef + 1 

     Next RowReference 


End Sub