Excel 2010: Порожні вклеєні комірки потребують активації, що викликає проблеми формули


0

У мене є проблема копіювання / вставлення з одного файлу Excel в інший.

У мене є робоча книжка з формами для введення даних. Нещодавно я додав підпункт для автоматичного використання великих літер.

Private Sub Worksheet_Change(ByVal Target As Range)
    '   Code goes in the Worksheet specific module
    Dim rng As Range
        '   Set Target Range, i.e. Range("A1, B2, C3"), or Range("A1:B3")
        Set rng = Target.Parent.Range("B11:C47")
             '   Only look at single cell changes
            If Target.Count > 1 Then Exit Sub
            '   Only look at that range
            If Intersect(Target, rng) Is Nothing Then Exit Sub
            '   Action if Condition(s) are met (do your thing here...)
            Application.EnableEvents = False
                Target.Value = UCase(Application.WorksheetFunction.Substitute(Target.Value, " ", ""))
            Application.EnableEvents = True
End Sub

Тепер, коли я копіюю і вставляю діапазон комірок (напр .: B2: B12), які мають порожні комірки, змішані зі старою версією того ж файлу без підпункту, деякі порожні комірки викликають проблеми формули. Це втрачається, якщо активовані порожні вклеєні комірки (двічі клацнуте або видалено).

У мене немає способу змінити старішу версію файлу, оскільки він був розповсюджений для кількох людей і неможливо було б виправити їх усі.

Це, здається, відбувається випадковим чином, оскільки це не всі порожні клітини, які викликають проблему, і це не завжди однакові комірки. Я спробував = CODE (), = VALUE (), = ISTEXT (), = ISNUMBER (), щоб знайти те, що є насправді в комірці, але я не можу отримати жодного значення, тільки що клітина є текстовою (як і всі комірки введення форматуються як текст).

Щоб спробувати відповісти на будь-які питання, які можуть виникнути:

  • Копіювання / вставлення лише значень тощо ... призводить до того ж випуску

  • Копіювання / вставлення у кожен файл працює без проблем

  • Перехід від старого файлу до нового файлу працює

Окрім того, щоб щоразу входити та "видаляти" значення "з усіх" порожніх "комірок, чи існує спосіб запобігти появі цих порожніх вклеєних комірок як необхідних для активації у старому файлі? Я припускаю, що проблема виникає в підгрунті, оскільки цієї проблеми не було в попередніх версіях цього файлу.

РЕДАКТУВАТИ весь код для одного з аркушів, про які йдеться:

Private Sub Worksheet_Activate()

End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As     Boolean)

End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

End Sub

Private Sub Worksheet_Calculate()

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
'   Code goes in the Worksheet specific module
Dim rng As Range
    '   Set Target Range, i.e. Range("A1, B2, C3"), or Range("A1:B3")
    Set rng = Target.Parent.Range("B11:C47")
         '   Only look at single cell changes
        If Target.Count > 1 Then Exit Sub
        '   Only look at that range
        If Intersect(Target, rng) Is Nothing Then Exit Sub
        '   Action if Condition(s) are met (do your thing here...)
        Application.EnableEvents = False
            Target.Value = UCase(Application.WorksheetFunction.Substitute(Target.Value, " ", ""))
        Application.EnableEvents = True
End Sub

Private Sub Worksheet_Deactivate()

End Sub

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

End Sub

Private Sub Worksheet_PivotTableAfterValueChange(ByVal TargetPivotTable As PivotTable, ByVal TargetRange As Range)

End Sub

Private Sub Worksheet_PivotTableBeforeAllocateChanges(ByVal TargetPivotTable As PivotTable, ByVal ValueChangeStart As Long, ByVal ValueChangeEnd As Long, Cancel As Boolean)

End Sub

Private Sub Worksheet_PivotTableBeforeCommitChanges(ByVal TargetPivotTable As PivotTable, ByVal ValueChangeStart As Long, ByVal ValueChangeEnd As Long, Cancel As Boolean)

End Sub

Private Sub Worksheet_PivotTableBeforeDiscardChanges(ByVal TargetPivotTable As PivotTable, ByVal ValueChangeStart As Long, ByVal ValueChangeEnd As Long)

End Sub

Private Sub Worksheet_PivotTableChangeSync(ByVal Target As PivotTable)

End Sub

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

Як щодо натискання F9безпосередньо після наклеювання?
JaredT

Будь ласка, опублікуйте решту свого коду. Опублікований вами код не робить нічого порожнім значенням і не може бути джерелом проблеми.
Кайл

Я спробував F9 після вставки, жодних змін на жаль ...
Джон,

Я, на жаль, не можу розмістити решту коду, є понад 50 аркушів з декількома макросами та загальним розміром файлу понад 3,5 Мб. Цей підпункт був єдиною зміною коду, коли було представлено питання, що змушує мене вважати, що це причина проблеми ... Я повинен зазначити, що "порожні" комірки показують підрахунок під час виділення. Вони відображаються лише ПІСЛЯ чогось було введено і підпункт працює. Чи може субгрупування залишає клітини з або привидним значенням, або з вимогою активації, коли вона закінчується? Дякую
Джон

Я повинен додати, що функція = ISBLANK () при перегляді стовпця проблеми вказує, чи містить комірка значення.
Джон

Відповіді:


0

Проблема була з новим файлом, але не з підпунктом. Хтось інший (спільний головний файл), очевидно, залишив дані в кількох клітинках. Я не впевнений, чому це не спричинило помилку на аркуші, на якому він був, але після копіювання в старіший файл. Дані не були пробілом або 0, які не відображалися, тому формули не знали, як з цим боротися, і повертали помилки. Очищення вмісту комірок у новому файлі та збереження виправили проблему.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.