2016-03-04 72 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