powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ячейки = empty
17 сообщений из 17, страница 1 из 1
ячейки = empty
    #35482245
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
народ, утро видимо - самое трудное время дня ...
уже час бьюсь с тем чтобы выделить столбец G и убрать 0 ... (тобишь помоему присвоить ячейкам значение empty) подмогните плиз)
...
Рейтинг: 0 / 0
ячейки = empty
    #35482261
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
понимаю что скорее всего это безграмотно абсолютно .... но ничего другого в голову не идет :((
Код: plaintext
1.
2.
3.
4.
5.
6.
Cells.Range("A1", "H100").Select
With Selection
If .Value = "0" Then
Cells.Value.Empty
End If
End With

как правильно?
...
Рейтинг: 0 / 0
ячейки = empty
    #35482288
birk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
For i =  1  To Range("G65536").End(xlUp).Row
If Cells(i,  7 ) =  0  Then Cells(i,  7 ) = Empty
Next i
...
Рейтинг: 0 / 0
ячейки = empty
    #35482301
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
странно .... но 0 почему то в столбце G остаются :((
...
Рейтинг: 0 / 0
ячейки = empty
    #35482307
birk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мб так?

Код: plaintext
1.
2.
For i =  1  To Range("G65536").End(xlUp).Row
If Range("G" & i) =  0  Then Range("G" & i).Clear
Next i
...
Рейтинг: 0 / 0
ячейки = empty
    #35482322
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
неа :( там у меня просто одна ячейка объединенная
G(i+11 ) и он говорит что не может изменить значение объединенной ячейки
...
Рейтинг: 0 / 0
ячейки = empty
    #35482327
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
получается забавно на самом деле , он вроде когда формирует страницы - он 0 убирает, а когда смотрю сохраненный документ - нули опять появляются :((
...
Рейтинг: 0 / 0
ячейки = empty
    #35482354
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кстати этот косяк получается со всем , после того как я формирую свою книгу, и вношу изменения (банально если в конце перед закрытием и сохранением меняю цвет ячейки) после открытия сохраненного документа - изменения не сохраняются :((
...
Рейтинг: 0 / 0
ячейки = empty
    #35482366
birk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скинь пример
...
Рейтинг: 0 / 0
ячейки = empty
    #35482380
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну сам пример - длинный оч , я скину концовку, где собственно все и происходит:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
'---  подсчет итоговых значений
With ActiveWorkbook
   For i = LBound(arMonth,  1 ) To UBound(arMonth,  1 )
        For j =  0  To count -  1 
            With Sheets(i).Range("G" & CStr(j *  11  +  3 ))
                .FormulaR1C1 = "=RC[-2]-RC[-1]"
                .AutoFill Destination:=.Resize( 7 ,  1 ) _
                    , Type:=xlFillCopy 
            End With
            With Sheets(i).Range("E" & CStr(j *  11  +  9 ))
                .FormulaR1C1 = "=SUM(R[-6]C:R[-1]C)"
                .AutoFill Destination:=.Resize( 1 ,  2 ) _
                    , Type:=xlFillCopy
            End With
For b =  1  To Range("G65536").End(xlUp).Row
If Range("G" & b) =  0  Then Range("G" & b) = Empty
Next b
Range("G" & CStr(j *  11  +  9 )).Select
    With Selection.Interior
        .ColorIndex =  46 
        .Pattern = xlSolid
    End With
   Next
   Next
End With
Application.DisplayAlerts = False
    wbNew.Worksheets("MustRemoved").Delete
    Application.ScreenUpdating = True
    ActiveWorkbook.Close savechanges:=True, Filename:=nameOut  ' присваивается ранее, при формировании, для того чтобы его использовать в теле проги
    
    Application.DisplayAlerts = True
    
    ThisWorkbook.Activate
  MsgBox "формирование завершено", vbOKOnly + vbInformation, "Сообщение"
Код: plaintext

и вопрос ещё такой, почему то когда выполняется формула (самая первая (вычитание)) то происходит замена не только значений ячеек, но и их цвета (они у меня были выделены, для отчета)
...
Рейтинг: 0 / 0
ячейки = empty
    #35482431
Фотография ДмиДми
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nomad87
Код: plaintext
1.
2.
3.
4.
5.
6.
Cells.Range("A1", "H100").Select
With Selection
If .Value = "0" Then
Cells.Value.Empty
End If
End With

Nomad87там у меня просто одна ячейка объединенная
Возможно (лень проверять) сработает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub ClearZeroes()
    Dim c As Range

    For Each c In Range("A1", "H100").Cells
        If c.Formula = "0" Then
            If c.MergeCells Then
                If c.MergeArea.Cells( 1 ).Address = c.Address _
                Then c.ClearContents
            Else
                c.ClearContents
            End If
        End If
    Next
End Sub
...
Рейтинг: 0 / 0
ячейки = empty
    #35482450
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Nomad87

По поводу нулей в книге, есть настройка в Екселе - показывать нулевые значения
ActiveWindow.DisplayZeros = False
??

> и вопрос ещё такой, почему то когда выполняется формула (самая первая (вычитание))
> то происходит замена не только значений ячеек, но и их цвета (они у меня были выделены,
> для отчета)

Потому что указан параметр полного копирования:
Type:=xlFillCopy


--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ячейки = empty
    #35482578
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДмиДми, оно работает но тока естественно на одной странице, попытался воткнуть Sheets(i), проигнорило меня ...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
With ActiveWorkbook
   For i = LBound(arMonth,  1 ) To UBound(arMonth,  1 )
        For j =  0  To count -  1 
            With Sheets(i).Range("G" & CStr(j *  11  +  3 ))
                .FormulaR1C1 = "=RC[-2]-RC[-1]"
                .AutoFill Destination:=.Resize( 7 ,  1 ) _
                , Type:=xlFillCopy 
            End With
            With Sheets(i).Range("E" & CStr(j *  11  +  9 ))
                .FormulaR1C1 = "=SUM(R[-6]C:R[-1]C)"
                .AutoFill Destination:=.Resize( 1 ,  2 ) _
                   , Type:=xlFillCopy
                   
            End With
For b =  1  To Range("G65536").End(xlUp).Row
If Range("G" & b) =  0  Then Range("G" & b) = Empty
Next b
Range("G" & CStr(j *  11  +  9 )).Select
    With Selection.Interior
        .ColorIndex =  46 
        .Pattern = xlSolid
    End With
Dim c As Range
    For Each c In Sheets(i).Range("A1", "H100").Cells
        If c.Formula = "0" Then
            If c.MergeCells Then
                If c.MergeArea.Cells( 1 ).Address = c.Address _
                Then c.ClearContents
            Else
                c.ClearContents
            End If
        End If
    Next
    
    
   Next
   Next
End With
Игорь Горбонос - а как это поправить, как скопировать, чтобы не менял цвет ?
...
Рейтинг: 0 / 0
ячейки = empty
    #35482602
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Nomad87
> Игорь Горбонос - а как это поправить, как скопировать, чтобы не менял цвет ?


Посмотреть справку по AutoFill и внимательно изучить enum XlAutoFillType ;)

--
С уважением Горбонос Игорь Леонидович

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ячейки = empty
    #35483956
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
With ActiveWorkbook
For i = LBound(arMonth, 1) To UBound(arMonth, 1)
For j = 0 To count - 1
With Sheets(i). Range("G" & CStr(j * 11 + 3))
.FormulaR1C1 = "=RC[-2]-RC[-1]"
.AutoFill Destination:=.Resize(7, 1) _
, Type:=xlFillCopy
End With
With Sheets(i). Range("E" & CStr(j * 11 + 9))
.FormulaR1C1 = "=SUM(R[-6]C:R[-1]C)"
.AutoFill Destination:=.Resize(1, 2) _
, Type:=xlFillCopy

End With
For b = 1 To Range("G65536").End(xlUp).Row
If Range("G" & b) = 0 Then Range("G" & b) = Empty
Next b

Обращаю ваше внимание на выделенные жирным участки. Если вы вставляете конструкцию With, то используйте же ее. Посмотрите: ваши все Range, Sheets сами по себе, а With само по себе.

Кроме этого, зачем вы в цикле "For b" 65536 раз вычисляете вашу последнюю Row? Смысл? Вы так уверены, что VBA вам это оптимизирует?

Далее, вот это: Range("G" & b) = 0 лучше написать так: Range("G" & b).Value = 0. Иногда это может играть роль.

Далее, если вы начали использовать CStr: CStr(j * 11 + 3), то так и продолжайте: Range("G" & b) замените наRange("G" & CStr(b))


Успехов

Влад
...
Рейтинг: 0 / 0
ячейки = empty
    #35483959
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.... Кроме этого, зачем вы в цикле "For b" 65536 раз ....

Там, конечно, не 65536 раз, но все равно, вычислите вашу строку 1 раз, и все.

Успехов.
...
Рейтинг: 0 / 0
ячейки = empty
    #35484283
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
благодарю, обязательно поправлю так как вы сказали, просто недавно совсем познакомился с вба .. поэтому такие косяячки небольшие ...
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ячейки = empty
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]