By ttacco22@gmail.com luni, 19 martie 2018
postat în Excel
Răspunsuri 0
Preferințe 0
Vizualizări 5.1 K
Voturi 0
Bună ziua, am folosit în trecut VBA pentru a face anumite lucruri în Office și am uitat mai multe decât îmi amintesc. Acestea fiind spuse, folosesc Microsoft Windows 7 Home Premium cu o versiune mai veche de Microsoft Office Excel (mă gândesc la 2003).

Am o foaie de calcul pe care o folosesc pentru a-mi urmări colecția media de mp4 și altele. Folosind o comandă dir în caseta de comandă pentru a scoate un fișier txt pe care îl analizez pentru a reda celulele cu o cale către media (în principal mp4s) și numele fișierului actual.mp4. în intervalul A:I

Ceea ce încerc să realizez este să muți fiecare rând dintr-un interval care are o celulă cu un nume de fișier.mp4 pe o altă foaie.
Acesta este codul meu de până acum:

Sub MoveMp4()
„Private Sub Worksheet_Change(ByVal Target As Range) [[utilizați aceasta ca linie de sus pentru a rula automat dacă doriți]]
Dim xRg As Range
Dim xCell As Range
Dim I As Long
Dim J As Long
Dim K As Long
I = Foi de lucru ("Sheet1").UsedRange.Rows.Count
J = Foi de lucru ("Sheet2").UsedRange.Rows.Count
Dacă J = 1, atunci
Dacă Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0, atunci J = 0
Final, dacă
Set xRg = Worksheets("Sheet1").Range("A:I") '[[RANGE CONTINENT FILENAME.MP4 MODIFICĂRI DINAMIC]]
La data de eroare CV următoare
Application.ScreenUpdating = Fals
Pentru K = 1 To xRg.Count
Dacă CStr(xRg(K).Value) = „.mp4” Atunci
xRg(K).EntireRow.Copy Destination:=Foaie de lucru(„Sheet2”).Range(„A” și J + 1)
xRg(K).EntireRow.Delete
Dacă CStr(xRg(K).Value) = „.mp4” Atunci
K = K - 1
Final, dacă
J = J + 1
Final, dacă
Pagina Următoare →
Application.ScreenUpdating = Adevărat
End Sub

Din nou, codul de mai sus funcționează dacă o singură celulă din intervalul A:I conține .mp4, dar nu va muta rândul dacă există caractere înainte de .mp4 (ca majoritatea numelor de fișiere) ExcelVBAExample2.jpg

Poate că trebuie să caute celulele din intervalul care se schimbă dinamic pentru extensia .mp4 și, când a fost găsită, să muți întregul rând în foaia 2. Știu că obișnuiam să folosesc comanda a pentru a căuta un șir de caractere pentru anumite caractere și pentru a opera pe ele în consecință, dar eu nu-mi amintesc ce sau cum am făcut.

Scuze pentru lungimea postării, dar am vrut să fiu cât mai clar posibil cu privire la ceea ce îmi doresc, în loc să merg înainte și înapoi cu explicații. Am atașat un exemplu cu ceea ce lucrez.

Aș dori să spun că am adaptat codul dintr-o postare de aici:

https://www.extendoffice.com/documents/excel/3723-excel-move-row-to-another-sheet-based-on-cell-value.html?page_comment=1

Și, în sfârșit, aș dori să adaug că, oameni buni, faceți un serviciu grozav comunității lumii, Vă mulțumesc din adâncul sufletului și minții mele!
Vizualizați mesajul complet