bir girişi onaylamanın bir yolu


0

Bir cevabı olan veya olmayan bir sorum var.

bir hücreye sahibim, A1 diyelim ve A1'de "y" varsa, A2 ve A3'teki değerler eklenir ve toplam A4'tür. A1 boşsa, A4 yalnızca A3 değerine sahiptir. Excel'de yapmak oldukça basittir.

Ancak soru şu, "y" yi girmek veya silmek yerine ne kullanabilirim? Benim durumumda, verilerim birkaç bin satırdır ve bu "y" seçeneğine sahip olmak, sebepsiz yere fazladan satır eklememi ve kaçınmayı tercih etmemi sağlıyor.

Temelde istediğim, A2 değerini kullanmanın bir yoludur ve eğer istersem A4 değerini güncellemek için excel komutunu kullanmanın bir yolunu bulmaktır (A2 ve A3'ü toplayarak). Aksi takdirde, A3'ün değerini tutmaya devam edecektir.

Yazı tipi rengini ve A2'nin arka plan rengini değiştirerek bir onay belirtmek üzere güncellemek için bir makro kullanmayı denedim, ancak excel çalışmazsa bu yazı tipi / renk değişikliklerinde hesaplama yapmıyor. F9'a basarsam yenileyecek ve çalışacak ancak bu çok fazla güçlük çekiyor, bu yüzden bunu istemiyorum.

Beyler lütfen benim için başka bir şey önerin! Çok teşekkür ederim.

Yanıtlar:


0

Çalışma sayfası kod alanına aşağıdaki Olay Makrosunu girin :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim A2 As Range
    Set A2 = Range("A2")

    If Intersect(A2, Target) Is Nothing Then Exit Sub

    Application.EnableEvents = False
        [A4] = [A2] + [A3]
    Application.EnableEvents = True

End Sub

Çalışma sayfası kodu olduğu için kurulumu çok kolaydır ve kullanımı otomatiktir:

  1. Excel penceresinin altındaki sekme adını sağ tıklatın
  2. Kod Görüntüle'yi seçin - bu bir VBE penceresi getirir
  3. öğeleri yapıştırın ve VBE penceresini kapatın

Herhangi bir endişeniz varsa, önce bir deneme çalışma sayfasında deneyin.

Çalışma kitabını kaydederseniz, makro onunla birlikte kaydedilir. Daha sonra 2003'ten sonra bir Excel sürümü kullanıyorsanız, dosyayı .xlsx yerine .xlsm olarak kaydetmeniz gerekir.

Makroyu kaldırmak için:

  1. VBE pencerelerini yukarıdaki gibi açın
  2. kodu temizle
  3. VBE penceresini kapatın

Genel olarak makrolar hakkında daha fazla bilgi için bkz.

http://www.mvps.org/dmcritchie/excel/getstarted.htm

ve

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Etkinlik Makroları (çalışma sayfası kodu) hakkında daha fazla bilgi için bkz.

http://www.mvps.org/dmcritchie/excel/event.htm

Bunun çalışması için makrolar etkinleştirilmelidir!

DÜZENLEME # 1:

Önce önceki makroyu atın ve bununla değiştirin:

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

    Set A2 = Range("A2")
    If Intersect(Target, A2) Is Nothing Then Exit Sub
    Cancel = True
    [A4] = [A2] + [A3]
    A2.Font.Bold = True
End Sub

A2'deki çift ​​tıklama davranışını etkiler . Kod, diğer hücreleri veya aralıkları kapsayacak şekilde kolayca genişletilebilir.

DÜZENLEME # 2:

Bu versiyonda çift tıklayarak A2 onaylar A2 . A3'e çift ​​tıklamak A2'yi onaylar :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim A2 As Range, boo As Boolean, A3 As Range

    Set A2 = Range("A2")
    Set A3 = Range("A3")

    If Not Intersect(Target, A2) Is Nothing Then
        [A4] = [A2] + [A3]
        A2.Font.Bold = True
        Cancel = True
    End If
    If Not Intersect(Target, A3) Is Nothing Then
        A2.Font.Bold = False
        [A4] = [A3]
        Cancel = True
    End If

End Sub

DÜZENLEME # 3:

Bu makroyu kullanmak, işlevselliği A sütununun ötesindeki sütunlara genişletir :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim rw2 As Range, rw3 As Range, kolumn As Long

    Set rw2 = Range("2:2")
    Set rw3 = Range("3:3")

    kolumn = Target.Column
    If Not Intersect(Target, rw2) Is Nothing Then
        Cells(4, kolumn) = Cells(2, kolumn) + Cells(3, kolumn)
        Cells(2, kolumn).Font.Bold = True
        Cancel = True
    End If
    If Not Intersect(Target, rw3) Is Nothing Then
        Cells(2, kolumn).Font.Bold = False
        Cells(4, kolumn) = Cells(3, kolumn)
        Cancel = True
    End If

End Sub

Yorumlar genişletilmiş tartışmalar için değildir; bu konuşma sohbete taşındı .
Mokubai

@Mokubai .................. Ben ................ hemfikir
Gary Öğrenci


Selam Gary'nin Öğrencisi - konuştuklarımızdan sonra, şimdi bunu gerçek elektronik tablomda uygulamaya koymam gerekiyor ve kodunuzu bir aralıkta çalışmak üzere tercüme edemediğimi fark ettim. Lütfen aşağıdaki ekran görüntüsüne bakın ve sayfam şuna benziyor: imgur.com/3jujHs5 Esasen "y" yi kaldırmak ve çift tıklama kodunuzu "ek" satırın olduğu her yerde kullanmak istiyorum. Burada nasıl kullanabilirim, herhangi bir yardımın çok takdir edileceğinden emin değilim.
rightanium

@rightanium Size daha sonra yardım edebilirim ...... bir cep telefonundan daha fazlası varken.
Gary'nin Öğrenci
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.