Sub f_x5()
Dim a&
lastrow1 = Sheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row
For a = 1 To lastrow1
If Cells(a, 1).value = "0" Then Cells(a, 1) = ""
Next
End Sub
Если одной строкой, то End If В ячейке точно текст "0", не число 0? myVariant - это откуда? В функцию что-то передаваться должно? Надо пример в файле показывать
Public Function f_x5(x As Long)
If x = 0 Then f_x5 = "" Else f_x5 = x
End Function
Наличие текста среди числовых данных (а это "" - текст нулевой длины) может навредить последующим вычислениям Формат ячеек 0;; скроет ненужные нули без применения функции.
В том то и дело что проверял... Ваш пример был основой. Основная трудность было в том что ячейка (только числовое значение) имееи формат #'000 - как только применяешь функцию она возврашет такое же числовое значени только в виде "General" и возможности изменить этот формат - нет. (прсто не меняется, ни в проценты, ни в волютное значение).
Цитата
vikttur написал: У Вас оператор не закрыт (End If)
Как только, закрываю End If -> Compile error (End if, without block If)
Цитата
vikttur написал: Зачем было менять тип переменной х?
Путем перебора, задекларировал, так как задекларировал . Может странно, но работает.