Пользовательский формат числа читается как строка; что мне не хватает? - PullRequest
0 голосов
/ 27 марта 2019

У меня есть макрос, который я пишу для форматирования ежедневного отчета; часть которого сравнивает процентное изменение за неделю за неделей. Я предпочитаю использовать формат «+0%; - 0%», в отличие от стандартного «0%; - 0%», но когда я применяю фильтры, я теряю контекст чисел и связанные параметры фильтров чисел (например, «выше среднего»).

Есть идеи?

Я попытался скопировать / вставить как значения, вместо того, чтобы оставить формулу, и хотя это, казалось, исправило первый диапазон% Col, он не исправил другие (хотя они правильно вставлены как значения)

''''''''                    
 ''Call my FindAll function to find each column with the header "% chg"
 ''''''''

    Dim matches As Collection, m
    Dim mycell As Range, c As Range

    Dim strFindMe As String
    Dim myCell As Range


            strFindMe = "% Chg"


            Set matches = FindAll(rgHeader, strFindMe)
            For Each m In matches
                Dim ColPct As Range
                    Set c = m.Offset(1, 0)
                    Set ColPct = Range(c.Address, Cells(RgSummary.Row, _
                        Range(c.Address).Column))

 ''''''''                    
 ''Calculate the wk-wk % chg for each column with header "% Chg"        
 ''''''''   

                        For Each myCell In ColPct
                            ''calculate Prct Chg
                                myCell.FormulaR1C1 = "=iferror(IF(AND(rc[-6]<>"""",rc[-3]<>""""),(rc[-3]/rc[-6]-1),""""),""N/A"")"
    '                            myCell.NumberFormat = "+0%;-0%"
                        Next

                        With ColPct
                            .Copy
                            .PasteSpecial xlValues
                            .NumberFormat = "+0%;-0%"
                        End With
              next m

Цель: процентное изменение имеет формат "+0%; - 0%" и читается фильтрами Excel как число, а не строка

1 Ответ

0 голосов
/ 27 марта 2019

оказывается, что это было не форматирование чисел, а часть формулы, которая говорит, что если "" оставляло невидимые текстовые строки в моих столбцах

исправил это с помощью этого кода, который я нашел через ElderDelp здесь, так что спасибо, Человек!

Возврат пустой ячейки из формулы в Excel

For Each myCell In ColPct
                    ''calculate Prct Chg
                        myCell.FormulaR1C1 = "=iferror(IF(OR(rc[-6]<>"""",rc[-3]<>""""),(rc[-3]/rc[-6]-1),""""),""N/A"")"
                        myCell.NumberFormat = "+0%;-0%"
                        If Len(myCell.Text) = 0 Then
                            myCell.ClearContents
                        End If
                Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...