2014-02-19 51 views
-1

我有一個客戶列表的編輯,我想將其格式化爲Excel表格格式。如上圖所示,是否有辦法從客戶列表中提取數據並將其插入表中? 我無法手動完成,因爲客戶太多。Excel:重新定位excel中的數據

有沒有可以做到的附加功能或公式?

enter image description here

+1

你有沒有嘗試過自己呢?一般來說,如果你嘗試自己併發布你的代碼,如果你正在掙扎,你會得到更好的迴應。簡而言之,使用VBA有一個相當簡單的方法,你之前使用過VBA嗎? – Simon1979

+0

嗨西蒙。很遺憾,我不熟悉VBA。你有一個示例代碼,我可以試錯嗎? – nelsonq

+0

此網站旨在幫助人們解決他們的編程問題,而不是提供完整的解決方案。如果你不準備至少爲自己編寫一些代碼,那麼你就錯了。 –

回答

0

既然你是完全新的VBA我給你一條腿,這一次,但通常你需要出示你有什麼先做自己獲得任何援助。

快速介紹VBA;按Alt + F11調出VBE(Visual Basic編輯器),進入插入並點擊模塊。粘貼下面的代碼,然後修改它,添加剩餘的數據點並計算出行/列偏移量。您可以按F5運行代碼。

Sub RePosition() 

Dim rng As Range, c As Range, dest As Range 

' Set the range to look in for "CustomerNo:" 
Set rng = ActiveSheet.Range("A:A") 
' Set the cell where you want to start putting you re-positioned data 
Set dest = Range("I2") 

' Loop through each cell in you range 
For Each c In rng 
    ' If the cell = "CustomerNo:" we know it is a new set 
    ' of data 
    If c.Value = "CustomerNo:" Then 
     ' Based from the cell containing "CustomerNo:" we can 
     ' pick up each data point by offsetting row and column 
     ' and place it in our destination cell (offsetting dest 
     ' as well) 
     c.Offset(0, 1).Copy dest 
     c.Offset(1, 1).Copy dest.Offset(0, 1) 
     c.Offset(2, 1).Copy dest.Offset(0, 2) 
     c.Offset(2, 3).Copy dest.Offset(0, 3) 
     ' etc for each of the data points 


     ' Set the dest to the row below 
     Set dest = dest.Offset(1, 0) 
    End If 
Next c 

End Sub 

這應該讓你開始,給你如何對待它,如果你運行它是你應該得到的客戶,公司,名稱和地址渡過難關,你應該能夠推測的一個想法自己休息一下。

+0

非常感謝!管理使用您的代碼並將其編輯爲我的要求。它工作完美! – nelsonq