「、」デリミタを使用して列を分割する必要がある週ファイルを受け取る予定ですが、対象列の位置とその列内の値の長さ列は不明で、変化します。Excelの先行ゼロを保存する分割出力
スプリットのターゲット列の値には、先行0があります。これは、文字が一般としてフォーマットされた列に入力された場合に予想されるように、現在削除されています。分割の対象列は、分割を実行する前に常にテキストとして書式設定されます。対象となる列以外の列の値はすべて保持する必要があります。
以下の手順を実行すると、対象の列が目的のテキスト形式ではなく一般に変換されたように見えます。私は列がTextのままであり、先頭の0が保持されるようにする方法については不明です。
現在のサブ:生データの
Sub Test_Split_Column()
Dim LR As Long, i As Long, LC As Integer
Dim x As Variant
Dim r As Range, iCol As Integer
On Error Resume Next
Set r = Application.InputBox("Click in the column to split by", Type:=8)
On Error GoTo 0
If r Is Nothing Then Exit Sub
On Error Resume Next
ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).Value = " "
On Error GoTo 0
iCol = r.Column
Application.ScreenUpdating = False
LC = Cells(1, Columns.Count).End(xlToLeft).Column
LR = Cells(Rows.Count, iCol).End(xlUp).Row
Columns(iCol).Insert
For i = LR To 1 Step -1
With Cells(i, iCol + 1)
If InStr(.Value, ",") = 0 Then
.Offset(, -1).Value = .Value
Else
x = Split(.Value, ",")
.Offset(1).Resize(UBound(x)).EntireRow.Insert
.Offset(, -1).Resize(UBound(x) - LBound(x) + 1).Value = Application.Transpose(x)
End If
End With
Next i
Columns(iCol + 1).Delete
LR = Cells(Rows.Count, iCol).End(xlUp).Row
With Range(Cells(1, 1), Cells(LR, LC))
On Error Resume Next
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
On Error GoTo 0
.Value = .Value
End With
With ActiveSheet.UsedRange
.Replace What:=" ", Replacement:=vbNullString, LookAt:=xlWhole
End With
Application.ScreenUpdating = True
End Sub
例として、電流出力、および所望の出力は、下記のリンク:
あなたが大幅に高く評価されて提供することができますどのような援助を!ありがとう!
これらの値を割り当てる前に、セルを '.NumberFormat =" @ "'でテキストとして整形することができます。 – Slai
また、カラムを "Text"フォーマットとして設定することもできます – nightcrawler23
'Range.TextToColumns'メソッドを使用し、カラムを 'xlTextFormat'として指定することができます –