Metin Sütun VBA kodu için dinamik satır ve sütun boyutu


2

Genellikle 200-5000 satır veya 30-60 sütun içeren CSV raporlarını dışa aktarırım. Makro işlevini kullanarak Metin Sütun Sihirbazı'ndan geçen bir makro kaydettim, elde edilen makro satır boyutuna bağlıdır ve bunu nasıl düzeltebilirim?

Sub Macro1()
Range("A1:A2313").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
    :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
    Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
    ), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
    (20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), _
    Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array(32, 1), Array( _
    33, 1), Array(34, 1), Array(35, 1), Array(36, 1), Array(37, 1), Array(38, 1), Array(39, 1), _
    Array(40, 1), Array(41, 1), Array(42, 1), Array(43, 1), Array(44, 1), Array(45, 1), Array( _
    46, 1), Array(47, 1), Array(48, 1)), TrailingMinusNumbers:=True
End Sub

Yanıtlar:


2

Satır sayısını bulabilirsiniz. LastRow = ActiveSheet.Cells(ActiveSheet.rows.Count, "A").End(xlUp).row sonra bir For döngüsü ile içinden döngü.

FieldInfo parametresi isteğe bağlı bir parametredir, bu nedenle aşağıdaki koda benzemek için kaldırılabilir.

Sub Text2Column()
'Delimited and Comma Separated

Application.ScreenUpdating = False
LastRow = ActiveSheet.Cells(ActiveSheet.rows.Count, "A").End(xlUp).row
For r = 1 To LastRow
    ActiveSheet.Cells(r, 1).Select
    Selection.TextToColumns Destination:=Range(ActiveSheet.Cells(r, 1), ActiveSheet.Cells(r, 1)), dataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, _
    Comma:=True, Space:=False, Other:=False, TrailingMinusNumbers:=True
Next r
Application.ScreenUpdating = True

End Sub
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.