2013-07-26 5 views
1

Я хочу скопировать данные из Excel. Ниже я хочу скопировать данные. Например, я хочу скопировать данные в ячейку D4 из excel в A4 в .Экспорт excel в csv

"Excel ---> CSV 
"D4-->A4 
"F4&all excluding the first character in G4-->B4 
"K4-->E4 
"L4-->F4 
"N4-->G4 
"P4-->I4 

Ниже мой код. Он создает и заполняет данные по мере необходимости, за исключением того, что он не удаляет первый символ в G4 при копировании на B4 в csv. Может кто-то сказать мне, как мне нужно изменить свой код, чтобы реализовать это.

Sub csvfile() 

Dim fs As Object 
Dim a As Object 
Dim lngRow As Long 
Dim X 

Set fs = CreateObject("Scripting.FileSystemObject") 
Set a = fs.CreateTextFile("C:\temp\" & Environ("username") & ".csv", True) 
X = Range([d4], Cells(Rows.Count, "P").End(xlUp)).Value2 

For lngRow = 1 To UBound(X) - 15 
a.writeline X(lngRow, 1) & "," & X(lngRow, 3) & X(lngRow, 4) & ",,," & X(lngRow, 8) & "," & X(lngRow, 9) & "," & X(lngRow, 11) & ",," & X(lngRow, 13) 
Next 
a.Close 

End Sub 

ответ

1

Вы можете манипулировать четвертый столбец (G) как так:

полный код

Sub csvfile() 

Dim fs As Object 
Dim a As Object 
Dim lngRow As Long 
Dim X 

Set fs = CreateObject("Scripting.FileSystemObject") 
Set a = fs.CreateTextFile("C:\temp\" & Environ("username") & ".csv", True) 
X = Range([d4], Cells(Rows.Count, "P").End(xlUp)).Value2 

For lngRow = 1 To UBound(X) - 15 
If Len(X(lngRow, 4)) > 0 Then X(lngRow, 4) = Right$(X(lngRow, 4), Len(X(lngRow, 4)) - 1) 
a.writeline X(lngRow, 1) & "," & X(lngRow, 3) & X(lngRow, 4) & ",,," & X(lngRow, 8) & "," & X(lngRow, 9) & "," & X(lngRow, 11) & ",," & X(lngRow, 13) 
Next 
a.Close 

End Sub 
+0

Это дает мне несоответствие типов. – user2571551

+0

fixed dodgey ')'. PLS попробуйте еще раз – brettdj

+0

говорит недействительный вызов или аргумент процедуры. Ive пробовал в обоих направлениях. – user2571551

Смежные вопросы