Note: The other languages of the website are Google-translated. Back to English

Ինչպե՞ս Excel- ում բջջային արժեքի հիման վրա ամբողջ շարքը տեղափոխել ակտիվ թերթի ներքև:

Excel- ում բջջային արժեքի հիման վրա ամբողջ շարքը ակտիվ թերթի ներքևում տեղափոխելու համար խնդրում ենք փորձել այս հոդվածում տեղադրված VBA կոդը:

VBA կոդով բջջային արժեքի հիման վրա ամբողջ շարքը տեղափոխեք ակտիվ թերթի ներքև


VBA կոդով բջջային արժեքի հիման վրա ամբողջ շարքը տեղափոխեք ակտիվ թերթի ներքև

Օրինակ, ինչպես ցույց է տրված սքրինշոթից ներքևում, եթե C սյունակում գտնվող բջիջը պարունակում է որոշակի արժեք «Կատարված է», ապա ամբողջ շարքը տեղափոխեք ընթացիկ թերթիկի ներքև: Խնդրում եմ, արեք հետևյալ կերպ.

1. Մամուլ ալտ+ F11 ստեղները միաժամանակ բացելու համար Microsoft Visual Basic հավելվածների համար պատուհան.

2. Մեջ Microsoft Visual Basic հավելվածների համար պատուհանը, սեղմեք Տեղադրել > Մոդուլներ, Դրանից հետո պատճենեք և տեղադրեք ներքևի VBA կոդը պատուհանում:

VBA կոդ. Բջջային արժեքի հիման վրա ամբողջ շարքը տեղափոխել ակտիվ թերթի ներքև

Sub MoveToEnd()
    Dim xRg As Range
    Dim xTxt As String
    Dim xCell As Range
    Dim xEndRow As Long
    Dim I As Long
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
lOne:
    Set xRg = Application.InputBox("Select range:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    If xRg.Columns.Count > 1 Or xRg.Areas.Count > 1 Then
        MsgBox " Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
        GoTo lOne
    End If
    xEndRow = xRg.Rows.Count + xRg.Row
    Application.ScreenUpdating = False
    For I = xRg.Rows.Count To 1 Step -1
        If xRg.Cells(I) = "Done" Then
           xRg.Cells(I).EntireRow.Cut
           Rows(xEndRow).Insert Shift:=xlDown
        End If
    Next
    Application.ScreenUpdating = True
End Sub

ՆշումVBA կոդում «Կատարված”Բջիջի արժեքն է, որի հիման վրա դուք կտեղափոխեք ամբողջ շարքը: Դուք կարող եք փոխել այն, ինչ ձեզ հարկավոր է:

3. Սեղմեք F5 ծածկագիրը գործելու ստեղնը, այնուհետև դուրս գալու պատուհանում Excel- ի համար նախատեսված գործիքներ երկխոսության տուփ, ընտրեք սյունակի տիրույթը, որի մեջ կա որոշակի արժեք, ապա կտտացրեք այն OK կոճակը:

Հետո սեղմելով OK կոճակը, նշված սյունակում «Կատարված» արժեքը պարունակող ամբողջ շարքը ավտոմատ կերպով տեղափոխվում է տվյալների տիրույթի ներքև:


Առնչվող հոդվածներ:


Գրասենյակի արտադրողականության լավագույն գործիքները

Excel-ի համար Kutools-ը լուծում է ձեր խնդիրների մեծ մասը և բարձրացնում ձեր արտադրողականությունը 80%-ով

  • Վերաօգտագործել: Արագ տեղադրեք բարդ բանաձևեր, գծապատկերներ և այն ամենը, ինչ դուք նախկինում օգտագործել եք. Ryածկագրել բջիջները գաղտնաբառով; Ստեղծեք փոստային ցուցակ և նամակներ ուղարկել ...
  • Super Formula Bar (հեշտությամբ խմբագրեք տեքստի և բանաձևի բազմաթիվ տողեր); Ընթերցանության դասավորությունը (հեշտությամբ կարդալ և խմբագրել մեծ թվով բջիջներ); Տեղադրել ֆիլտրացված տիրույթում...
  • Միաձուլել բջիջները / տողերը / սյունակները առանց տվյալների կորստի. Պառակտված բջիջների պարունակությունը; Միավորել կրկնօրինակ տողերը / սյունակները... Կանխել կրկնօրինակ բջիջները; Համեմատեք միջակայքերը...
  • Ընտրեք Կրկնօրինակ կամ Եզակի Շարքեր; Ընտրեք դատարկ շարքեր (բոլոր բջիջները դատարկ են); Super Find և Fuzzy Find շատ աշխատանքային գրքույկներում; Պատահական ընտրություն ...
  • Actշգրիտ պատճեն Բազմաթիվ բջիջներ ՝ առանց բանաձևի հղումը փոխելու; Ավտոմատ ստեղծեք հղումներ դեպի մի քանի թերթեր; Տեղադրեք փամփուշտներ, Տուփեր և ավելին ...
  • Քաղվածք տեքստ, Տեքստ ավելացնել, հեռացնել ըստ դիրքի, Հեռացնել տարածությունը; Ստեղծել և տպել էջային ենթագոտիներ; Փոխարկել բջիջների բովանդակության և մեկնաբանությունների միջև...
  • Սուպեր զտիչ (պահպանել և կիրառել ֆիլտրի սխեմաները այլ թերթերի վրա); Ընդլայնված տեսակավորում ըստ ամիս / շաբաթ / օր, հաճախականություն և ավելին; Հատուկ զտիչ համարձակ, շեղատառով ...
  • Միավորել աշխատանքային տետրերը և աշխատանքային թերթերը; Միավորել աղյուսակները ՝ հիմնված հիմնական սյունակների վրա; Տվյալները բաժանեք մի քանի թերթերի; Խմբաքանակի փոխակերպում xls, xlsx և PDF...
  • Ավելի քան 300 հզոր հատկություններ. Աջակցում է Office / Excel 2007-2021 և 365: Աջակցում է բոլոր լեզուներին: Հեշտ տեղակայում ձեր ձեռնարկությունում կամ կազմակերպությունում: Ամբողջական հնարավորություններ 30-օրյա անվճար փորձարկում: 60-օրյա գումարի վերադարձի երաշխիք:
kte էջանիշը 201905

Office Tab- ը Tabbed ինտերֆեյսը բերում է Office, և ձեր աշխատանքը շատ ավելի դյուրին դարձրեք

  • Միացնել ներդիրներով խմբագրումը և ընթերցումը Word, Excel, PowerPoint- ով, Հրատարակիչ, Access, Visio և Project:
  • Բացեք և ստեղծեք բազմաթիվ փաստաթղթեր նույն պատուհանի նոր ներդիրներում, այլ ոչ թե նոր պատուհաններում:
  • Բարձրացնում է ձեր արտադրողականությունը 50%-ով և նվազեցնում մկնիկի հարյուրավոր սեղմումները ձեզ համար ամեն օր:
officetab ներքևում
Տեսակավորել մեկնաբանությունները ըստ
մեկնաբանություններ (28)
Գնահատված 4.75- ը 5- ից դուրս է · 2 վարկանիշ
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Ինչպե՞ս կարող եմ այնպես անել, որ kutools-ն ընտրի հատուկ տողեր՝ առանց օգտվողի մուտքի:
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Ողջույն, Անոն,
Կներեք, ես վստահ չեմ, թե ինչ նկատի ունեք: Լավ կլինի, եթե կարողանաք նորից բացատրել կամ տրամադրել սքրինշոթ՝ ցույց տալու համար, թե ինչ եք փորձում անել:
Շնորհակալություն ձեր մեկնաբանության համար:
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Բարև Կրիստալ, այս կոդը հիանալի է աշխատում, շնորհակալություն: Ես կցանկանայի բոլոր տողերը, որոնք պարունակում են «Լրիվ» բառը D սյունակում, տեղափոխել աղյուսակի վերևում (տեղադրել 3-րդ տողում): Հնարավո՞ր է դա։ ապա ես կցանկանայի ջնջել բոլոր այս ամբողջական տողերը, որոնք պարունակում են «երեկվա ամսաթիվը» սյունակ V-ում:
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Բարեւ Ձեզ. Սա գրեթե կատարյալ է իմ ուզածի համար: Ես ունեմ նույն խնդրանքի մի մասը, ինչ Անոնը ստիպված էր այս աշխատանքը կատարել առանց օգտվողի մուտքի, ինչպես նաև որոշ հավելումների:

Ինձ հետաքրքրում է, թե հնարավո՞ր է որոնել միակ սյունակը i4-ից մինչև i50, և այն ավտոմատ կերպով գործարկվի բաց ռեժիմում, թե երբ i սյունակը խմբագրվի: Նաև, եթե հնարավոր լինի տողերը տեղափոխել թերթի ներքևի հատված՝ առանց որևէ դատարկ տողերի «կատարված» և «ոչ» տողերի միջև: Ներկայումս, եթե ես ընտրեմ i4:i50, և եթե ունեմ միայն մինչև 25-րդ տողը, այն կտեղադրի «կատարված» տողերը, որոնք աճում են 50-րդ տողից 25-րդ տողի փոխարեն: Իմ թերթի տողերի թիվը անընդհատ փոխվում է և չպետք է հասնի դրան: ավելի քան 50: Շնորհակալություն օգնության համար:
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Բարև Բրենդոն
Ներողություն, կարող է օգնել ձեզ այդ հարցում: Շնորհակալություն մեկնաբանության համար։
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Ողջույն, կա՞ տարբերակ սա կսմթել այնպես, որ բացի վերջից, մի շարք այլ տեղ տեղափոխվի նույն թերթիկում: Ես ունեմ թերթիկ, որը պարունակում է թվագրված պատվերների և գալիք պատվերների վերաբերյալ տեղեկություններ, և ես ունեմ այն ​​այնպես, որ երբ ես «X» տառը դնեմ A սյունակում, ամեն ինչ ընդգծվի և թավ լինի՝ կախված # մասի և առաքման վայրերից: Այժմ ես պետք է ֆիզիկապես կտրեմ և կպցնեմ նոր թվագրվածը (առաքման ամսաթիվը), որպեսզի այն տեղավորվի վերևում՝ դասավորված ըստ ամսաթվի (1-ից մինչև ամսվա վերջ): Ես կարողացել եմ պայմանական ձևաչափել ամեն ինչ մինչև այս պահը, բայց չեմ կարծում, որ կարող եմ տողեր տեղափոխել այդ կերպ: Ես մտածում էի, թե արդյոք VBA-ն կարող է դա անել, տեղափոխել տող, երբ ամսաթիվը մուտքագրվում է, որպեսզի համապատասխանի մյուս թվագրված տողերին:
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Ողջույն, միակ միջոցը, որով ես կարող եմ սա գործարկել, այն է, եթե ես «գործարկեմ» մակրոն Visual Basic ենթաէկրանում: Հնարավո՞ր է արդյոք այս VBA կոդը ավտոմատ կերպով գործարկել, երբ օգտվողը մուտքագրի «Կատարված է»: Ամեն անգամ, երբ ես ստանում եմ Kutools- ի համար Excel- ի երկխոսության տուփը, որպեսզի խնդրեմ այն ​​պարամետրերը, որոնք ես խնդրում եմ կոդը որոնելու համար: Ես մի տեսակ աշխատել եմ դրա շուրջ՝ փոխարինելով xTxt = ActiveSheet.UsedRange.AddressLocal-ը այն պարամետրերով, որոնք ես պետք է փնտրեմ և սեղմեմ enter: Բայց ավելի հարմար կլիներ, եթե «Կատարված» մուտքագրելուց հետո ավտոմատ կերպով կատարեր փոփոխությունները։ Շնորհակալություն!
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Ողջույն, Անոն,
Ստորև բերված VBA կոդը կարող է ձեզ լավություն անել: Խնդրում ենք փորձել:
Խնդրում ենք աջ սեղմել թերթի ներդիրի վրա (թերթը պարունակում է այն տվյալները, որոնք դուք կտեղափոխվեք ներքև), համատեքստի ընտրացանկից ընտրեք Դիտել կոդը և պատճենեք ստորև բերված կոդը կոդի պատուհանում:

Private Sub Worksheet_Change (ByVal Target as Range)
«Թարմացվել է Extendoffice 20190925
Dim xRg որպես տիրույթ
Dim xIRg որպես միջակայք
Dim xTxt որպես տող
Dim xCell-ը որպես տիրույթ
Dim xEndRow այնքան երկար
Dim I As Long
Dim xDStr որպես տող
Ս.թ. սխալի Ռեզյումե Next
xDStr = «C:C»
Սահմանել xRg = Me.Range (xDStr)
Սահմանել xIRg = Application.Intersect(Target, xRg)
Եթե ​​xIRg-ը ոչինչ է, ապա դուրս եկեք Sub
Դիմում. ScreenUpdating = Սուտ է
Application.EnableEvents = False

If Target = «Կատարված է» Ապա
xEndRow = ActiveSheet.UsedRange.Rows.Count + 1
Target.EntireRow.Cut
Տողեր (xEndRow): Տեղադրեք Shift:=xlDown
Վերջ: Եթե
Application.EnableEvents = Ճիշտ է
Դիմում. ScreenUpdating = ueիշտ է
Վերջ Sub
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Բարև բյուրեղյա,

Շնորհակալություն այս կոդը տեղադրելու համար: Ես կցանկանայի իմանալ, թե ինչպես ստանալ կոդը՝ տողը վերև տեղափոխելու համար, եթե Կատարվածը սխալ է մուտքագրվել: Կարո՞ղ է երկրորդական ծածկագիր ավելացնել «տեղափոխել»՝ այն վերև տեղափոխելու համար, իսկ «կատարված»՝ ներքևի համար:
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
բարև, բյուրեղյա, կոդը, որը դուք տվել եք anon-ին, որպեսզի vba-ի կոդն ավտոմատ կերպով գործարկվի, հիանալի է, բայց ես չեմ կարող տողերի թերթիկ տեղադրել, կա՞ արդյոք այն ուղղելու հնարավոր եղանակ:
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Բարև Սառա,
Ներողություն անհանգստության համար. Խնդրում ենք փորձել ստորև նշված VBA-ն: Շնորհակալություն։

Private Sub Worksheet_Change (ByVal Target as Range)

«Թարմացվել է Extendoffice 20200424

Dim xRg որպես տիրույթ

Dim xIRg որպես միջակայք

Dim xTxt որպես տող

Dim xCell-ը որպես տիրույթ

Dim xEndRow այնքան երկար

Dim I As Long

Dim xDStr որպես տող

Սխալի դեպքում GoTo Err1

xDStr = «C:C»

Սահմանել xRg = Me.Range (xDStr)

Սահմանել xIRg = Application.Intersect(Target, xRg)

Եթե ​​xIRg-ը ոչինչ է, ապա դուրս եկեք Sub

Դիմում. ScreenUpdating = Սուտ է

Application.EnableEvents = False



If Target.Value = «Կատարված է» Ապա

'xEndRow = ActiveSheet.UsedRange.Rows.Count + 1

xEndRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Տող + 1

Target.EntireRow.Cut

Տողեր (xEndRow): Տեղադրեք Shift:=xlDown

Վերջ: Եթե

Սխալ 1:

Application.EnableEvents = Ճիշտ է

Դիմում. ScreenUpdating = ueիշտ է

Վերջ Sub
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Ես փորձեցի պատճենել այս կոդը, բայց այն շարունակում է ասել, որ ես օգտագործում եմ անվավեր:
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Ինչ անել, եթե ձեզ միայն անհրաժեշտ է տողեր տեղափոխել A և B սյունակների տակ; ապա C սյունակը պետք է պահպանվի? մենք դեռ պետք է օգտագործենք EntireRow?
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Բարև Ջերել,
Փորձեք ստորև նշված կոդը: Հուսով եմ, որ կարող եմ օգնել:

Sub MoveToEnd()

«Թարմացվել է Extendoffice 20200717

Dim xRg որպես տիրույթ

Dim xTxt որպես տող

Dim xCell-ը որպես տիրույթ

Dim xEndRow այնքան երկար

Dim xIntR որպես ամբողջ թիվ

Dim I As Long

Dim xWs As Worksheet

Ս.թ. սխալի Ռեզյումե Next

Եթե ​​ActiveWindow.RangeSelection.Count > 1 Ապա

xTxt = ActiveWindow.RangeSelection.AddressLocal

Ուրիշ

xTxt = ActiveSheet.UsedRange.AddressLocal

Վերջ: Եթե

lOne:

Սահմանել xRg = Application.InputBox («Ընտրել տիրույթը:», «Kutools for Excel», xTxt, , , , , 8)

Եթե ​​xRg-ը ոչինչ է, ապա դուրս եկեք Sub

Եթե ​​xRg.Columns.Count > 1 Կամ xRg.Areas.Count > 1 Ապա

MsgBox « Ընտրվել են բազմաթիվ տիրույթներ կամ սյունակներ», vbInformation, «Kutools for Excel»

GoTo lOne

Վերջ: Եթե

xEndRow = xRg.Rows.Count + xRg.Row

xWs = xRg.Աշխատանքային թերթիկ

xWs.Ակտիվացնել

Դիմում. ScreenUpdating = Սուտ է

For I = xRg.Rows.Count to 1 Step -1

If xRg.Item(I) = «Կատարված է» Ապա

Տողեր (xEndRow). Տեղադրեք Shift:=xlներքև, CopyOrigin:=xlFormatFromLeftOrAbove

xIntR = xRg.Cells(I).Տող

Շրջանակ ("A" & xIntR & ":B" & xIntR): Ընտրեք

Ընտրություն.Կտրել

Range ("A" & xEndRow): Ընտրեք

ActiveSheet.Paste

xEndRow = xEndRow + 1



Վերջ: Եթե

հաջորդ

Դիմում. ScreenUpdating = ueիշտ է

Վերջ Sub
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Բարեւ,



Ես խնդիրներ ունեմ տրամադրված ծածկագրի օգտագործման հետ և շարունակում եմ շարահյուսական սխալ ստանալ: Ես շատ նոր եմ գերազանցում և փորձել եմ ինքնուրույն սովորեցնել այն, ինչ ինձ անհրաժեշտ է իմ տնային բիզնեսը վարելու համար: Ես ունե՞մ գույքագրման աղյուսակի նույնացուցիչ, որպեսզի կարողանամ սյունակում ապրանքները նշանակել որպես ԹՈՂԱՑՈՂ: այո/ոչ և եթե այո, ապա դրանք տեղափոխվում են թերթի ներքևի մաս՝ այբբենական կարգով, առանց հիմնական աղյուսակում դատարկ տեղ թողնելու: մենք ունենք ապրանքներ, որոնք ամբողջությամբ հանվում են թոշակի, այնուհետև վերադառնում ենք հատուկ վերաթողարկման՝ սահմանափակ քանակությամբ և նույնականացնում ենք այս ապրանքների պես, որոնք պահվում են իմ թերթիկի ներքևում, մինչև դրանք նորից հասանելի դառնան: Շնորհակալություն.
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Ողջույն, ես մի խնդիր ունեմ, որն ինձ տվել է իմ ղեկավարը: Սկզբում դա բավականին պարզ էր թվում, բայց հիմա ես շփոթված եմ, թե ինչպես շարունակել: Մենք ունենք հնարավոր աշխատատեղերի կանխատեսման թերթիկ, և նրանք ունեն «Պատվերի հավանականություն» սյունակը %-ով: Նա ուզում է, որ ես տեղադրեմ 3 տարբեր թերթիկներ 100-70%, 69%-41 և 40-0%: Գաղափարն այն է, որ քանի որ տեղեկատվությունը մուտքագրվում է հիմնական թերթիկում, երբ տոկոսը մուտքագրվում է, այն ավտոմատ կերպով պատճենվում է ընթացիկ թերթում, որը համապատասխանում է այդ տոկոսային զայրույթին: Ես դա արեցի պարզ IF-ով (և բանաձևով: Այնուամենայնիվ, ես պետք է դասավորեմ ըստ դատարկ բջիջների, որպեսզի այն ավելի մաքուր տեսք ունենա: Այնուհետև, երբ ես տեսակավորում եմ, եթե ես նոր Oder Probability առաջարկ ավելացնեմ հիմնական թերթիկին, դա ինքնաբերաբար չի կատարվում: ցույց տվեք այն, առանց տեսակավորման, այնուհետև նորից տեսակավորելու: Ես ներողություն եմ խնդրում, եթե այս հարցը նրան չի պատկանում: Բայց կա՞ կոդի շարան, որը ես կարող եմ տեղադրել, որն ավելի հեշտ կլուծի այս խնդիրը: Միակ արժեքը, որը որոշում է, թե արդյոք ամբողջ տողը տեղափոխվի, դա է: K սյունակը պարզ է թվում, բայց որքան էլ բարդ այս Excel սկսնակների համար: Նախապես շնորհակալություն ձեր օգնության համար:
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Ինչպե՞ս դա անել, եթե «Կատարված»-ը սյունակի տողի միայն մի մասն է: Ենթադրենք, որ իմ սյունակները պարունակում են այնպիսի արժեքներ, ինչպիսիք են՝ XYZDone, ABCDone, 123Done և այլն, կարո՞ղ եմ պարզապես զտել «Կատարված» մասնակի տողի հիման վրա:
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Բարև Կրիստալ,
Շնորհակալություն օգնության համար, կոդը հիանալի է աշխատում, բայց տողը էջի ներքև տեղափոխելու փոխարեն ինչպե՞ս տեղափոխել այն մեկ այլ ներդիր, այսինքն՝ «Փակ» ներդիր:
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Ողջու՜յն,
Կներեք այդքան ուշ պատասխանելու համար։
Կոդում պարզապես անհրաժեշտ է փոխել տողը »Եթե ​​xRg.Cells(I) = «Կատարված է» Ապա«դեպի Եթե ​​xRg.Cells(I) Like «*Done*» Ապա այն կատարելու համար:
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Ես ունեմ մի ցուցակ՝ վանդակներով, որ երբ մի սյունակ է նշված, ինձ անհրաժեշտ է, որ այն գնա աղյուսակի մի հատված, իսկ եթե մյուսը նշված է, այն գնում է մինչև վերջ: Ես փորձել եմ դա անելու հարյուր տարբեր եղանակներ, կարո՞ղ է որևէ մեկը օգնել այս հարցում:
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Ողջու՜յն! Ես հենց նոր գնեցի kutools, որպեսզի կարողանամ *** այս vba կոդը իմ excel թերթում, քանի որ այն օգտագործելու համար հիանալի հատկություն կլինի: Վերը նշված հրահանգները պարզ և օգտակար են. Այնուամենայնիվ, երբ ես հասնում եմ այն ​​քայլին, որտեղ կոդը պատճենվում և տեղադրվում է պատուհանում և սեղմում եմ F5, այն ինձ ուղարկում է արկղ՝ անվանելու և ստեղծելու մակրո: Ես դա արեցի, բայց հիմա այն ինձ չի տանի երկխոսության տուփ, որպեսզի կարողանամ ընտրել բջիջների տիրույթը: Հայտնվում է «անվավեր արտաքին ընթացակարգի» կազմման սխալ: Խնդրում ենք օգնել!
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Ողջու՜յն,
Ցավում եմ, որ մոլորության մեջ եմ գցել: Կոդը կարող է օգտագործվել ինքնուրույն և չի պահանջում Kutools-ի գնում: Եթե ​​դրա կարիքը չունեք, խնդրում ենք ուղարկել sales@ հասցեինextendoffice.com՝ գումարի վերադարձ խնդրելու համար:
Որպեսզի կոդը սահուն աշխատի, դուք պետք է համոզվեք, որ ձեր կուրսորը գտնվում է կոդի պատուհանում (սեղմեք կոդի ցանկացած բառի վրա), այնուհետև սեղմեք կոճակը: F5 կոդը գործարկելու բանալին: Այնուհետև կհայտնվի բջիջների տիրույթ ընտրելու երկխոսության տուփը:
Կրկին կներեք անհարմարության համար։
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
ես նորից! Ես հասկացա կոդը: Ես ձեռքով պատճենել և տեղադրել էի կոդը, քան օգտագործել էկրանի վերևի աջ կողմում գտնվող պատճենման կոճակը: «Կատարված»-ը փոխեցի «x»-ի: Ես գործարկել եմ կոդը յուրաքանչյուր աշխատաթերթում: Երբ ես սկսում եմ մուտքագրել «x» այդ բջիջներում ընտրված բջիջների միջակայքում երկխոսության վանդակից, ոչինչ չի պատահում (տողերը ինքնաբերաբար չեն շարժվում դեպի ներքև): Ես շատ նոր եմ այս հարցում... շնորհակալություն ձեր օգնության համար:
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Ողջու՜յն,
Եթե ​​ցանկանում եք ավտոմատ կերպով տեղափոխել տողը ներքև նշված բառը մուտքագրելիս, խնդրում ենք փորձել հետևյալ VBA կոդը:
ՆշումԴուք պետք է մուտքագրեք կոդը Worksheet code պատուհանում (աջ սեղմեք թերթիկի ներդիրին և ընտրեք Դիտել կոդը համատեքստի ընտրացանկից):

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updated by Extendoffice 20220520
    Dim xRg As Range
    Dim xTxt As String
    Dim xCell As Range
    Dim xEndRow As Long
    Dim I As Long
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
lOne:
    Set xRg = Range("C2:C18")
    If xRg Is Nothing Then Exit Sub
    If xRg.Columns.Count > 1 Or xRg.Areas.Count > 1 Then
        MsgBox " Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
        GoTo lOne
    End If
    xEndRow = xRg.Rows.Count + xRg.Row
    Application.ScreenUpdating = False
    For I = xRg.Rows.Count To 1 Step -1
        If xRg.Cells(I) = "Done" Then
           xRg.Cells(I).EntireRow.Cut
           Rows(xEndRow).Insert Shift:=xlDown
        End If
    Next
    Application.ScreenUpdating = True
End Sub
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Բարև Կրիստալ,

Շնորհակալություն բոլոր հիանալի կոդերի համար: Կա՞ արդյոք դա անել առանց Kutools-ի: Ես նաև չեմ տեսնում բջիջների տիրույթ ընտրելու երկխոսության տուփ, այն ինձ մոտ չի հայտնվում:

Thank you,
Յազ
Գնահատված 5- ը 5- ից դուրս է
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Բարև Ջազ,
Դուք կարող եք ուղղակիորեն նշել բջիջների տիրույթը կոդի մեջ, առանց միջակայքը ընտրելու համար Kutools երկխոսության տուփը բացելու:
Կոդում խնդրում ենք փոխարինել հետևյալ տողը.
Set xRg = Application.InputBox("Select range:", "Kutools for Excel", xTxt, , , , , 8)

հետ:
Set xRg = Range("C2:C13")
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Արդյո՞ք կա տողերը սկզբնական վայր տեղափոխելու միջոց, երբ մուտքագրման կարգավիճակը փոխվում է: Օրինակ, եթե ինչ-որ մեկը այն փոխում է «Կատարված»-ից «անավարտ»-ի, կա՞ արդյոք Excel ծրագրավորելու միջոց՝ այն հետ տեղափոխելու համար:
Նաև այս փոփոխությունը մշտական ​​է: Ես նկատել եմ առաջին անգամ աշխատելուց հետո, դրանից հետո այն դադարեց աշխատել:

Շնորհակալություն ձեր օգնության և գրառման համար:
Գնահատված 4.5- ը 5- ից դուրս է
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Բարև Զոի,

Շնորհակալություն մեկնաբանության համար:
1. Առաջին հարցի համար:
Տեղափոխված տողը չի կարող հետ տեղափոխվել իր սկզբնական տեղը.
2. Երկրորդ հարցի համար:
Այս VBA կոդը պետք է գործարկվի ձեռքով ամեն անգամ, երբ դուք պետք է տողեր տեղափոխեք: Եթե ​​ցանկանում եք ինքնաբերաբար տեղափոխել տողը, երբ բջիջի արժեքը համապատասխանում է պայմանին, կարող եք փորձել հետևյալ VBA կոդը:
NotesԴուք պետք է տեղադրեք այս կոդը Sheet (Code) խմբագրում (Աջ սեղմեք թերթի ներդիրին և ընտրեք Դիտել կոդը՝ խմբագրիչը բացելու համար): Եվ փոխեք B2:B12 սյունակի տիրույթը ձեր սեփական տիրույթի:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updated Extendoffice 20230111
    Dim xRg As Range
    Dim xTxt As String
    Dim xCell As Range
    Dim xEndRow As Long
    Dim I As Long
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
lOne:
    Set xRg = Range("B2:B12")
    If xRg Is Nothing Then Exit Sub
    If xRg.Columns.Count > 1 Or xRg.Areas.Count > 1 Then
        MsgBox " Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
        GoTo lOne
    End If
    xEndRow = xRg.Rows.Count + xRg.Row
    Application.ScreenUpdating = False
    For I = xRg.Rows.Count To 1 Step -1
        If xRg.Cells(I) = "Done" Then
           xRg.Cells(I).EntireRow.Cut
           Rows(xEndRow).Insert Shift:=xlDown
        End If
    Next
    Application.ScreenUpdating = True

End Sub
Առայժմ ոչ մի մեկնաբանություն չկա
Թողեք ձեր մեկնաբանությունները
Հրապարակում որպես հյուր
×
Գնահատեք այս գրառումը.
0   Անձնավորություններ
Առաջարկվող վայրեր

Հետեւեք մեզ

Հեղինակային իրավունքի © 2009 - www.extendoffice.com. | Բոլոր իրավունքները պաշտպանված են. Powered by ExtendOffice. | | Կայքի քարտեզ
Microsoft- ը և Office- ի պատկերանշանը հանդիսանում են Microsoft Corporation- ի ապրանքային նշաններ կամ գրանցված ապրանքային նշաններ ԱՄՆ-ում և (կամ) այլ երկրներում:
Պաշտպանված է Sectigo SSL- ի կողմից