AMcoder - javascript, python, java, html, php, sql

VBA-ի օգտագործումը զրոներով բջիջները ջնջելու համար

Ես ունեմ մի տիրույթ, որը տատանվում է, որտեղ A և B սյունակները համեմատվում են Սյունակ C և D հետ: Այս տվյալները վերցված են առանցքային աղյուսակից, և այդ պատճառով տողերի երկարությունը կարող է տարբեր լինել: Ես ունեմ իմ բանաձևը՝ 130-րդ տողով անցնող առանցքային աղյուսակներից հանելու բանաձևը: Այն, ինչ ես փորձում եմ անել, ջնջել բոլոր բջիջները, որտեղ A և B-ն երկուսն էլ դատարկ են, կամ որտեղ և՛ C, և՛ D են: Ցավոք, այն ջնջում է միայն ավելորդ բջիջների մի մասը, այնուհետև կանգ է առնում:

Ստորև բերված է այն կոդը, որը ես ներկայումս օգտագործում եմ (ցանկացած առաջարկները մեծապես երախտապարտ կլինեն)

 Dim i As Long

 For i = 6 To 200
      If Cells(i, 1) = "0" And Cells(i, 2) = "0" Then
          Cells(i, 1).Delete Shift:=xlUp
          Cells(i, 2).Delete Shift:=xlUp
      Else
          If Cells(i, 3) = "0" And Cells(i, 4) = "0" Then
              Cells(i, 3).Delete Shift:=xlUp
             Cells(i, 4).Delete Shift:=xlUp
          End If
      End If

 Next i
12.08.2016

  • Փորձեք For i = ActiveSheet.UsedRange.Rows.Count to 6 Step -1 12.08.2016
  • Ոչ բոլորն են ստանում, որովհետև դուք բաց եք թողնում մեկը ամեն անգամ, երբ ջնջում եք տող. դուք պետք է նվազեցնեք ձեր հաշվիչը կամ աշխատեք հետբառեր, ինչպես իմ սկզբնական մեկնաբանությունը: 12.08.2016

Պատասխանները:


1

Ինչպես ես ասացի իմ մեկնաբանություններում, բջիջները ջնջելիս պետք է հետ աշխատել կամ կրճատել ձեր հաշվիչը:

For i = 200 to 6 Step -1-ը, հավանաբար, այն ամենն է, ինչ դուք պետք է փոխեք:

Պատկերացրեք, որ տվյալները նման են հետևյալին.

Row    Data
1      5
2      0    <-- Delete Row 2 [i = 2]
3      0
4      7

Եթե ​​ես ջնջեմ 2-րդ տողը, 3-րդ տողը տեղափոխվում է վերև, և իմ հաշվիչն անցնում է 3-րդ տողին՝ բաց թողնելով այն:

Row    Data
1      5
2      0    <-- Skipped
3      7    <-- Row 3 Not Zero [i = 3]

Եթե ​​դուք հետ եք աշխատում, այն իրեն պահում է այնպես, ինչպես պետք է.

Row    Data
1      5
2      0    
3      0    <-- Delete Row 3 [i = 3]
4      7

Row    Data
1      5
2      0    <-- Delete Row 2 [i = 2]
3      7
12.08.2016
  • Դա անում է հնարքը: Շատ շնորհակալ եմ ոչ միայն պատասխանի, այլ բացատրության համար։ Ես փորձում եմ ինքս ինձ սովորեցնել VBA Excel-ի համար, երբ գնում եմ, և չէի գիտակցում, որ այն կբացի տողերը: 12.08.2016
  • @SammyO'Day Քանի որ դուք նոր եք այս կայքում, խնդրում եմ դիտեք այս երկու հղումները. Ինչ պետք է անեմ, երբ ինչ-որ մեկը պատասխանի իմ հարցին: ? և Ընդունել պատասխանները. ինչպե՞ս է դա աշխատում:: 13.08.2016
  • @user1274820 փորձե՞լ եք իմ ստորև նշված կոդը: եթե դա օգնեց ձեզ նշել որպես պատասխան և կողմ քվեարկություն 20.08.2016
  • Համոզված եմ, որ դուք նշել եք սխալ տղային. դուք փնտրում էիք @SammyO'Day-ին 21.08.2016

  • 2

    Փորձեք ստորև բերված կոդը, այն որոնում է վերջին տողը Սյունակ Ա-ում (ինչպես նշեցիք, որ ձեր PIVOT-ում տողերի թիվը կարող է փոխվել): F.Y.I միշտ ավելի անվտանգ է նաև հղում ավելացնել այն Թերթիկը, որտեղ գտնվում է PIVOT-ը:

    Dim i As Long
    
    ' use this to find the last row in Column A (since number of rows in PIVOT is dynamic
    For i = Cells(Rows.Count, "A").End(xlUp).Row To 6 Step -1
    
        If Cells(i, 1) = "0" And Cells(i, 2) = "0" Then
            Range(Cells(i, 1), Cells(i, 2)).Delete Shift:=xlUp
        Else
            If Cells(i, 3) = "0" And Cells(i, 4) = "0" Then
                  Range(Cells(i, 3), Cells(i, 4)).Delete Shift:=xlUp
            End If
        End If
    
    Next i
    
    12.08.2016
    Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..