我有一個長的工作表,其中包括3列:如何創建宏以拆分列和行?
柱A =發票號碼
列B =接收量
列C - 支付金額
在列中的每個號碼A需要分割到兩行:付款和接收。
對於收費將採取準數從列C
對於接收將準數從塔B
我有一個長的工作表,其中包括3列:如何創建宏以拆分列和行?
柱A =發票號碼
列B =接收量
列C - 支付金額
在列中的每個號碼A需要分割到兩行:付款和接收。
對於收費將採取準數從列C
對於接收將準數從塔B
我已經創建簡單的VBA代碼的行從工作表Sheet分成列向的Sheet 2中Activeworkbook。您可以根據需要修改代碼。
Dim sel As Range, b As Range
Dim rcount As Integer: rcount = 1
ActiveWorkbook.Sheets(2).Range("A:C").Delete Shift:=xlDown
With ActiveWorkbook.Sheets(1)
Set sel = .Range("A2:C" & .UsedRange.Rows.Count)
For Each b In sel.Rows
ActiveWorkbook.Sheets(2).Cells(rcount, 1).Value = b.Value2(1, 1)
ActiveWorkbook.Sheets(2).Cells(rcount, 2).Value = .Cells(1, 2).Value
ActiveWorkbook.Sheets(2).Cells(rcount, 3).Value = b.Value2(1, 2)
ActiveWorkbook.Sheets(2).Cells(rcount + 1, 1).Value = b.Value2(1, 1)
ActiveWorkbook.Sheets(2).Cells(rcount + 1, 2).Value = .Cells(1, 3).Value
ActiveWorkbook.Sheets(2).Cells(rcount + 1, 3).Value = b.Value2(1, 3)
rcount = rcount + 2
Next
End With
假設你的數據在Sheet1
,我們將讓Sheet2
的splited數據。這裏有一個簡單的解決方案:
Sub Split_Column()
Set st1 = ThisWorkbook.Sheets("Sheet1")
Set st2 = ThisWorkbook.Sheets("Sheet2")
j = 1
For i = 1 To st1.UsedRange.Rows.Count
st2.Cells(j, 1) = st1.Cells(i, 1)
st2.Cells(j, 2) = "Pay"
st2.Cells(j, 3) = st1.Cells(i, 3)
j = j + 1
st2.Cells(j, 1) = st1.Cells(i, 1)
st2.Cells(j, 2) = "Receive"
st2.Cells(j, 3) = st1.Cells(i, 2)
j = j + 1
Next
End Sub
如果你看看powerquery,你可以設置你的數據了一個表,那麼這個表裏面去powerquery或數據(2016)選項卡>從表查詢,然後在出現的窗口選擇最後2列並右鍵單擊unpivot列 – QHarr
感謝您的回覆。這個powerquery在哪裏?我有Office 2013 – tasoik
2013它是一個免費的微軟[加載項](https://www.microsoft.com/en-gb/download/details.aspx?id=39379) - 如果工作機器檢查你是允許安裝。 – QHarr