標題:
[發問]
相同資料欄位刪除/指定資料列重新排列
[打印本頁]
作者:
marklos
時間:
2012-4-3 19:25
標題:
相同資料欄位刪除/指定資料列重新排列
本帖最後由 marklos 於 2012-4-3 19:28 編輯
請求幫忙~
Sheet1 變成Sheet2
(相同資料欄位刪除,黃色標示)
[attach]10284[/attach]
Sheet2 變成 Sheet3
(D欄如果有資料, 紅字標示 ,插入下一欄位,並複製其B/D/G/H/I欄位的資料)
[attach]10287[/attach]
結果 Sheet3
[attach]10285[/attach]
感謝幫忙
作者:
GBKEE
時間:
2012-4-3 21:24
回復
1#
marklos
建議: 請在 Sheet1 A : J 欄的第一列加上資料的欄位名稱 用進階篩選 可得到不重複資料
Sub EX()
Sheet3.Cells.Clear
Sheet1.UsedRange.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet3.Range("A1"), Unique:=True
End Sub
複製代碼
(D欄如果有資料, 紅字標示 ,插入下一欄位,並複製其B/D/G/H/I欄位的資料)
看不了解 SHEET3的結果 它的欄位少了一位,只有到 I欄 SHEET1的最後欄位是J欄
作者:
marklos
時間:
2012-4-3 21:53
進階篩選確實可以得到不重複的資料~~感謝!!!
另外(D欄如果有資料, 紅字標示 ,插入下一欄位,並複製其B/D/G/H/I欄位的資料)
分解動作為
1.Sheet2中的D12(D欄如果有資料),D13插入新列,
2.D12移動到C13的位置
3.複製B12/D12/G12/H12/I12的資料至B13/D13/G13/H13/I13
4.其餘D欄如果有資料~依此類推
作者:
register313
時間:
2012-4-3 23:16
回復
3#
marklos
Sheet1 A : J 欄的第一列要先加上資料的欄位名稱
Sub EX()
Sheet3.Cells.Clear
Sheet1.UsedRange.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet3.Range("A1"), Unique:=True
With Sheet3
For R = .[D2].End(xlDown).Row To 2 Step -1
If .Cells(R, "D") <> "" Then
.Rows(R + 1).EntireRow.Insert
.Cells(R + 1, "B").Resize(1, 9).Value = .Cells(R, "B").Resize(1, 9).Value
.Cells(R + 1, "C") = .Cells(R, "D")
End If
Next R
.[D2:D65536] = ""
End With
End Sub
複製代碼
作者:
Hsieh
時間:
2012-4-4 09:48
回復
3#
marklos
Sub ex()
Dim ar()
Set d = CreateObject("Scripting.Dictionary")
With Sheets("Sheet1")
For Each a In .Range(.[A1], .[A1].End(xlDown))
x = Join(Application.Transpose(Application.Transpose(a.Resize(, 10).Value)), Chr(9))
If IsEmpty(d(x)) Then
d(x) = x
y = Split(x, Chr(9))
If a.Offset(, 3) <> "" Then
For i = 1 To 2
If i = 2 Then y(0) = ""
ReDim Preserve ar(s)
ar(s) = y
s = s + 1
Next
Else
ReDim Preserve ar(s): ar(s) = y: s = s + 1
End If
End If
Next
End With
With Sheets("Sheet3")
Application.DisplayAlerts = False
.[A1].Resize(s, 10) = Application.Transpose(Application.Transpose(ar))
Application.DisplayAlerts = True
End With
End Su
複製代碼
作者:
marklos
時間:
2012-4-5 18:57
如果只是單純將Sheet2 變成Sheet3 那應該如何?
單純將D欄的資料剪接到下一列的C欄位 , 並將原本的那一列的部份儲存格資料複製到下一列C欄位~
作者:
register313
時間:
2012-4-5 19:29
回復
6#
marklos
Sub EX()
Sheet3.Cells.Clear
X = 1
With Sheet2
For R = 1 To .[A65536].End(xlUp).Row
.Range("A" & R & ":J" & R).Copy Sheet3.Range("A" & X)
X = X + 1
If .Range("D" & R) <> "" Then
.Range("A" & R & ":J" & R).Copy Sheet3.Range("A" & X)
Sheet3.Range("D" & X - 1).Copy Sheet3.Range("C" & X)
X = X + 1
End If
Next R
End With
Sheet3.[D2:D65536] = ""
End Sub
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)