Excel 2010: Boş yapıştırılan hücrelerde formül sorunlarına neden olan etkinleştirme gerekir


0

Bir Excel dosyasından diğerine kopyalayıp yapıştırırken sorun yaşıyorum.

Veri girmek için formlar içeren bir çalışma kitabım var. Son zamanlarda, giriş hücrelerini otomatik olarak büyük harf yapmak için bir alt ekledim.

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

Şimdi, boş hücrelerin aynı dosyanın daha eski bir sürümüne alt olmadan karıştırıldığı bir hücre aralığını (Örn: B2: B12) kopyalayıp yapıştırdığımda , boş hücrelerin bazıları formül sorunlarına neden oluyor. Yapıştırılan boş hücreler etkinleştiğinde bu durum kaybolur (çift tıklatıldığında veya silindiğinde).

Dosyanın eski sürümünü, birden fazla kişiye dağıtıldığı ve hepsini düzeltmek imkansız olacağı için bir yöntemim yok.

Bu, soruna neden olan tüm boş hücreler olmadığı ve her zaman aynı hücreler olmadığı için rastgele gerçekleşiyor gibi görünmektedir. Hücrede gerçekte ne olduğunu bulmak için = CODE (), = VALUE (), = ISTEXT (), = ISNUMBER () denedim, ancak hücrenin metin olduğu herhangi bir değer alamıyorum giriş hücreleri metin olarak biçimlendirilir).

Ortaya çıkabilecek soruları denemek ve cevaplamak için:

  • Yalnızca değerleri vb. Kopyalayıp yapıştırmak aynı sayıyla sonuçlanır.

  • Her dosyanın içine kopyalamak / yapıştırmak sorunsuz çalışır

  • Eski dosyadan yeni dosyaya geçmek

Her seferinde tüm "boş" hücrelerden "değerleri" girip "silmekten" kısa bir süre önce, bu boş yapıştırılan hücrelerin eski dosyada etkinleştirilmesi gerekmek üzere ortaya çıkmasını önlemenin bir yolu var mı? Sorunun bu dosyanın önceki sürümlerinde olmadığı için alttan kaynaklandığını varsayıyorum.

EDIT Söz konusu sayfalardan birinin kodunun tamamı:

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

F9Yapıştırdıktan sonra doğrudan basmaya ne dersiniz ?
JaredT

Lütfen kodunuzun geri kalanını gönderin. Gönderdiğiniz kod boş değerlere hiçbir şey yapmaz ve sorunun kaynağı olamaz.
Kyle,

Yapıştırdıktan sonra F9'u denedim, maalesef değişiklik yok ...
John

Maalesef kodun geri kalanını gönderemiyorum, birden fazla makro içeren 50'den fazla sayfa ve 3,5 MB'den büyük toplam dosya var. Bu alt, kod sunulduğunda, sorunun sunulduğuna dair tek değişiklikti, bu da sorunun nedeni olduğuna inanmamı sağladı ... "Boş" hücrelerin vurgulandığında bir sayı gösterdiğini belirtmeliyim. Sadece bir şey girildikten ve alt çalışmadan SONRA görünürler. Alt, hücreleri bittiğinde hayalet değeri olan veya aktivasyon gereksinimi olan hücreler bırakabilir mi? Teşekkürler
John

= ISBLANK () fonksiyonunun problem sütununa bakmanın hücrenin bir değer içerip içermediğini gösterdiğini de eklemeliyim.
John

Yanıtlar:


0

Sorun daha yeni dosyadaydı ancak alt dosyada değildi. Bir başkası (paylaşılan ana dosya), görünüşe göre hücrelerin birkaçında veri bırakmıştı. Bunun neden üzerinde bulunduğu sayfada bir hataya neden olmadığından emin değilim, ancak eski dosyaya kopyalandıktan sonra. Veriler bir boşluk ya da 0 olmadığından, formüller bununla nasıl başa çıkacağını bilmiyordu ve hatalar verdi. Yeni dosyadaki hücrelerin içeriğini temizlemek ve kaydetmek sorunu düzeltti.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.