Eroare de ieșire din interval pentru Windows().Activate (Programare, Excel, Vba)

murugan_kotheesan a intrebat.

Am un pic de cod în macroul meu după cum urmează

ChDir File_pth
Workbooks.Open filename:= File_pth & "
 & open_tkt
Workbooks.Open filename:= File_pth & "
 & closed_tkt
ActiveSheet.Select
Windows("MSS - Ticket Backlog Benchmark_2013 09 05.xlsx").Activate
Sheets("Extract -prev").Select

Când execut macroul pentru a deschide alte două fișiere, ar trebui să se întoarcă la fișierul în care am executat macroul pentru a face unele operațiuni în același registru de lucru Xl.

Primesc eroarea out of range în linia

Windows("MSS - Ticket Backlog Benchmark_2013 09 05.xlsx").Activate

Fișierul MSS – Ticket Backlog Benchmark_2013 09 05.xlsx există.

Comentarii

  • V-ați gândit să setați referințe la registrele de lucru deschise în loc să folosiți Windows(„…”)? Căutați SO veți găsi o mulțime de întrebări cu răspunsuri bune – user2140173
  • bună ziua, deoarece sunt nou în VB știu foarte puțin, tot ce am făcut a fost să înregistrez o acțiune ca o nouă macro și să folosesc scriptul vb produs de acea nouă macro, ați putea să îmi explicați ce înseamnă setarea referințelor la o carte de lucru. –  > Por murugan_kotheesan.
3 răspunsuri
Omul nostru în banane

încercați

windows("MSS - Ticket Backlog Benchmark_2013 09 05").Activate

ați putea verifica numele tuturor registrelor de lucru deschise în fereastra de depanare astfel:

dim oBook as workbook

for each obook in workbooks
    debug.print ">" & obook.name & "<"
next

Comentarii

  • deci acest nume („MSS – Ticket Backlog Benchmark_2013 09 05.xlsx” este greșit. încercați să verificați numele caietelor de lucru deschise în fereastra Debug. –  > Por Omul nostru în banane.
  • numele fișierului este corect am folosit aceeași linie pentru a comuta între registrele de lucru deschise, dar acum nu funcționează, anterior am deschis manual toate registrele de lucru pe care trebuie să lucrez, acum am scris codul (colectat de pe net) ChDir _ File_pth Workbooks. Open filename:= _ File_pth & „
    & open_tkt ‘deschiderea fișierului deschis Workbooks.Open filename:= _ File_pth & „
    & closed_tkt ‘deschiderea fișierului închis pentru a deschide celelalte fișiere prin intermediul macro-ului propriu-zis –  > Por murugan_kotheesan.
  • aha! Methinks aici este o problemă de versiune, ce versiune de Excel folosiți? Este o versiune xls sau un fișier xlxs fișier? A fost salvat în modul de compatibilitate cu Excel 2003? –  > Por Omul nostru din Banane.
  • am găsit problema fișierul este de fapt doar în format xlsx , chiar și atunci când fac înregistrarea unei macro dă numele fișierului cu extensia .xlsx datorită codului tău de depanare care arată că fișierul are extensia .xlsm. nu știu de ce se schimbă…… ai idee de ce se schimbă ???? sau există vreo opțiune de a trece numele fișierului fără extensie și selectează orice tip de fișier cu potrivire exactă a numelui????? –  > Por murugan_kotheesan.
  • Mi-am editat răspunsul pentru a evita utilizarea extensiei, dacă funcționează, vă rog acceptați-l –  > Por Omul nostru în banane.
NickSlash

Activarea foii originale ar trebui să aducă și fereastra originală în față, deci nu ar trebui să fie nevoie să te joci cu ferestrele. (oricum funcționează pentru mine)

Dim Book As Workbook ' probably not needed
Set Book = ThisWorkbook ' probably not needed
Dim Sheet As Worksheet
Set Sheet = ActiveSheet
ChDir File_pth
Workbooks.Open filename:= File_pth & "" & open_tkt
Workbooks.Open filename:= File_pth & "" & closed_tkt
Book.Activate() ' probably not needed
Sheet.Activate()

Am adăugat codul pentru a activa registrul de lucru original înainte de a activa foaia originală (liniile cu comentariile de la sfârșit) și, așa cum spune, probabil că nu sunt necesare.

Variabilele Book și Sheet sunt referințe la Cartea de lucru activă (ThisWorkbook) și foaia activă (ActiveSheet). Aceasta este ceea ce sugera @mehow.

Eber Colegio

Trebuie să plasați macrourile în module în loc să le plasați în „This Workbook” sau în foi specifice. În caz contrar, veți avea acea problemă de interacțiune a ferestrelor. Am avut exact aceeași problemă și așa am rezolvat-o.

Așa:

Tags:,