1
A
答えて
2
コード以下試してみてくださいを認識していないですExcelのトリックがあります。
Sub Demo()
Dim ws As Worksheet
Dim cel As Range, rng As Range
Dim lastRow As Long, lastCol As Long, i As Long
Dim fOccur As Long, lOccur As Long, colIndex As Long
Dim dict As Object, c1
Application.ScreenUpdating = False
Set ws = ThisWorkbook.Sheets("Sheet1") 'change Sheet1 to your data range
Set dict = CreateObject("Scripting.Dictionary")
With ws
lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 'last row with data in Column A
lastCol = .Cells.Find(What:="*", _
After:=.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Column 'last column with data in Sheet1
Set rng = .Range("A1:A" & lastRow) 'set range in Column A
c1 = .Range("A2:A" & lastRow)
For i = 1 To UBound(c1, 1) 'using dictionary to get uniques values from Column A
dict(c1(i, 1)) = 1
Next i
colIndex = 16 'colIndex+1 is column number where data will be displayed from
For Each k In dict.keys 'loopthrough all unique values in Column A
fOccur = Application.WorksheetFunction.Match(k, rng, 0) 'get row no. of first occurrence
lOccur = Application.WorksheetFunction.CountIf(rng, k) 'get row no. of last occurrence
lOccur = lOccur + fOccur - 1
'copy range from left to right
.Range(.Cells(fOccur, 1 + colIndex), .Cells(lOccur, lastCol + colIndex)).Value = .Range(.Cells(fOccur, 1), .Cells(lOccur, lastCol)).Value
'delete blanks in range at right
.Range(.Cells(fOccur, 1 + colIndex), .Cells(lOccur, lastCol + colIndex)).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp 'delte blank rows
Next k
End With
Application.ScreenUpdating = True
End Sub
0
以下をお試しください。範囲を移動する場所に合わせて、次のコードを修正することができます。
Dim oW As Worksheet: Set oW = ThisWorkbook.Worksheets("Sheet8")
With oW.UsedRange
.Cut .Offset(0, .Columns.Count + 2)
End With
関連する問題
- 1. すべてのimplicitsを共通オブジェクトに移動
- 2. PHPを使用してcsvから最初の行に移動
- 3. PHPのファイルの最初の行に移動するには?
- 4. 行のすべてのセルに行を移動する方法
- 5. 最初の行の要素を共通に維持するスカラの分割線
- 6. 共通のインデックスの行[i]から行[i + 1]への値の移動
- 7. すべての行を共通に取得する
- 8. Entity Frameworkコードの最初の移行とデータ移行
- 9. MySQLは、同じフィールド値を共有するすべての行に対して、最初の行を除くすべての行を取得します。
- 10. フラスコの最初の移動を行う方法は?
- 11. EFコアコードの最初の移行でデータ移行を行う方法は?
- 12. エンティティフレームワークのコード最初の移行ファイルソースコントロール
- 13. エンティティフレームワークコードの最初の移行とFirebird
- 14. プロダクションデータベースへの最初の移行
- 15. コードの最初の移行とストアドプロシージャ
- 16. vimの行の最初の非空白文字への移動
- 17. バイナリツリーの最初の共通祖先
- 18. DataTableの行をDataTableの最初の位置に移動する方法
- 19. 配列内のオブジェクトを移動/移動して最初の要素を最後のインデックスに移動します
- 20. TextMate:行の最初の空白以外の文字に移動するショートカット
- 21. Vb.net編集時にデータグリッドビュー行を最後の行に移動
- 22. 最初の列を除くすべての行の平均
- 23. vimカーソルを最初の文字が欲しい行に移動しますか?
- 24. 最初の行に
- 25. JavaFX:TextAreaカーソルが新しいテキストの最初の行に移動します
- 26. 最初の行のpythonデータフレームに基づいてデータフレーム内のすべての行を並べ替え
- 27. 行の最初の行に基づいて行のデータをロード
- 28. 最初の試行でホバー移行がスムーズでない
- 29. 最初のunix_timestampを使用して、カラムのすべての行を最初に変換します
- 30. CSSのすべての最初の休憩のFirefox改行
はい、VBAコードで対応できます。私はパワークエリーでこれを行うことはできないと思います。そして手作業の方法は、あなたの大きなDBとあまりにも退屈なだろう –