/ / VBA конвертирате всички клетки в колона, за да напишете текст - excel, vba

VBA преобразува всички клетки в колона, за да напишете текст - excel, vba

Аз използвам VBA, за да направя някои допълнителни форматиране на aгенерира CSV файл, който винаги е в същия формат. Имам проблем с моя За всеки цикъл. Цикълът изтрива цял ред, ако има повече от един празен ред, който може да бъде определен от първата колона.

Dim rowCount As Integer
For Each cell In Columns("A").Cells
rowCount = rowCount + 1
"
" Delete blank row
"
If cell = "" And cell.Offset(1, 0) = "" Then
Rows(rowCount + 1).EntireRow.Delete
spaceCount = 0
End If
Next

В даден момент стойността в цикъла е една отповиквания няма стойност "", просто е празна и я кара да се срине. За да реша това, мисля, че промяната на типа на клетката към текста преди това сравнение ще работи, но не мога да разбера как INTELLISENSE !!!)

И така, как да конвертирате клетъчен тип в VBA или как иначе бих решил проблема?

Благодаря.

Отговори:

2 за отговор № 1

употреба cell.Value вместо cell.Text тъй като ще оцени стойността на клетката независимо от форматирането. Натиснете F1 .Value и .Text да прочетете повече за двете.

Бъдете внимателни с изявлението For Each cell In Columns("A").Cells както ще тествате всеки ред в листа (над един милион в Excel 2010) и може да накара Excel да се срине.

Редактиране:

Помислете и за функцията TRIM, Премахва всяко празно пространство преди и след aниз. Ако в клетката има бяло пространство ""; тя ще изглежда като празна за човешкото око, но има пространство вътре, затова е различно от "". Ако искате да го третирате като празна клетка, опитайте:

If Trim(cell.value) = "" then

0 за отговор № 2

As @andy (https://stackoverflow.com/users/1248931/andy-holaday) каза в коментар, For Each определено е начинът да тръгваме. Това дори позволява да има интервали между редовете.

Пример:

Sub ListFirstCol()

Worksheets("Sheet1").Activate
Range("A1").Activate

For Each cell In Application.Intersect(Range("A:A"), Worksheets("Sheet1").UsedRange)
MsgBox (cell)
Next

End Sub

Благодарение на Анди!