Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 3 von 3

Thema: Excel VB

  1. #1
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.647
    Danke
    788
    Erhielt 654 Danke für 497 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Ich habe folgenden Code. der wird in 1000enden Formeln aufgerufen in Excel

    Code:
    Public Function GetAttribute(r As Range) As StringDim AttributSets As Range
    Application.Volatile
    
    
    Set ASet = Worksheets("AttributSets").Range("B2:B100")
    
    
    GetAttribute = "??"
    
    
      For Each al In ASet
        If Not (IsEmpty(Worksheets("AttributSets").Cells(al.Row, 1))) Then
            If (BothemptyOrBothfull(ActiveSheet.Cells(r.Row, r.Column), Worksheets("AttributSets").Cells(al.Row, r.Column - 35))) And _
               (BothemptyOrBothfull(ActiveSheet.Cells(r.Row, r.Column + 1), Worksheets("AttributSets").Cells(al.Row, r.Column - 35 + 1))) And _
               (BothemptyOrBothfull(ActiveSheet.Cells(r.Row, r.Column + 2), Worksheets("AttributSets").Cells(al.Row, r.Column - 35 + 2))) And _
               (BothemptyOrBothfull(ActiveSheet.Cells(r.Row, r.Column + 3), Worksheets("AttributSets").Cells(al.Row, r.Column - 35 + 3))) And _
               (BothemptyOrBothfull(ActiveSheet.Cells(r.Row, r.Column + 4), Worksheets("AttributSets").Cells(al.Row, r.Column - 35 + 4))) And _
               (BothemptyOrBothfull(ActiveSheet.Cells(r.Row, r.Column + 5), Worksheets("AttributSets").Cells(al.Row, r.Column - 35 + 5))) And _
               (BothemptyOrBothfull(ActiveSheet.Cells(r.Row, r.Column + 6), Worksheets("AttributSets").Cells(al.Row, r.Column - 35 + 6))) And _
               (BothemptyOrBothfull(ActiveSheet.Cells(r.Row, r.Column + 7), Worksheets("AttributSets").Cells(al.Row, r.Column - 35 + 7))) And _
               (BothemptyOrBothfull(ActiveSheet.Cells(r.Row, r.Column + 8), Worksheets("AttributSets").Cells(al.Row, r.Column - 35 + 8))) Then
                GetAttribute = Worksheets("AttributSets").Cells(al.Row, 1).Value
                Exit For
            End If
    
    
        End If
      Next
    
    
    End Function
    
    
    Function BothemptyOrBothfull(c1 As Range, c2 As Range) As Boolean
    BothemptyOrBothfull = False
     If (IsEmpty(c1) And IsEmpty(c2)) Or _
        (Not (IsEmpty(c1)) And Not (IsEmpty(c2))) Then
       BothemptyOrBothfull = True
     End If
    End Function
    Das Orangene ist ja z.B. ein normales XNOR. Leider kennt das Excel nicht, darum das Konstrukt
    Aber auch der obere Teil ist ja eigentlich nur ein Wortvergleich als XNOR.
    Kann mir jemand einen Tip geben wie ich den Code in ExcelVB schlanker bekomme?

    mfG René
    Zitieren Zitieren Excel VB  

  2. #2
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    In einer Excelzelle selbst wäre Anzahl2 verwendbar:

    Code:
    WENN(ANZAHL2(C1:C2)<>1;"gleich";"ungleich")
    Das müsste unter VBA CountA entsprechen:

    Code:
    BothemptyOrBothfull = Range(c1, c2).CountA <> 1
    Frag mich aber nicht, ab welcher Excel-Version beides vorhanden ist.
    Geändert von hucki (26.04.2016 um 19:49 Uhr) Grund: Variablen c1 und c2 berichtigt

  3. #3
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Lt. Google könnte die Syntax unter VBA auch so aussehen müssen:

    Code:
    BothemptyOrBothfull = WorksheetFunction.CountA(ActiveSheet.Range(c1, c2)) <> 1

  4. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    vollmi (26.04.2016)

Ähnliche Themen

  1. Step 7 DB auslesen Via Excel
    Von Purepain im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 05.12.2013, 11:12
  2. WinCC + Excel
    Von Move im Forum HMI
    Antworten: 5
    Letzter Beitrag: 01.06.2011, 20:52
  3. S7 To Excel
    Von salih im Forum Werbung und Produktneuheiten
    Antworten: 0
    Letzter Beitrag: 26.07.2009, 11:41
  4. Excel -> DB
    Von mst im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 16.10.2007, 15:57
  5. Excel/SPS
    Von gebüsch im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 04.08.2006, 11:51

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •