Fråga : Sammanslutningarbetssedlar från olika arbetsböcker in i en arbetsbok using VB.Net

Hi experter.  Im som kämpar med ett nummer av problem med Excel 2007 och VB2008/3.5.  Den huvudsakliga är att jag behöver att få täcker från tre olika arbetsböcker som byts namn på och kombineras därefter in i en separat arbetsbok.  Detta är det helt täcker, inte spänner från en täcka.  Någon har en idé för detta?  Många tack i advance " klar "

Svar : Sammanslutningarbetssedlar från olika arbetsböcker in i en arbetsbok using VB.Net

Jag har fäst något kodifierar att ska färdigt uppgiften.  Låt mig veta hur detta fungerar.  Kodifiera kör, genom att gå till och med en lista av, sparar banor som du ger i en spänna av celler.  Denna bana måste starta med drevläget, och att gå hela vägen besegra till filenamen med dess extention.

Exempel:

C:\Users\Matthew Sheskey \ skrivbords- \ ExcelImport.xlsx

Du kan ge så många, som du skulle något liknande.  Den enda begränsningen här är Excel kan endast behandla 250ish täcker.

Du nämnde att täcker dig har endast att ha en arbetssedel.  Jag strukturerade kodifiera för att ta alla av arbetssedlar i arbetsboken, du önskar att tillfoga mer/tar precis i fall att som mer täcker mer sistnämnd.  Detta ändras lätt för att ta endast 1 täcker, om det är den önskade funktionsdugligheten.

Kodifieradegarna värderar nu.  Låt mig veta, om du önskar att jag ska ändra kodifiera för att klistra allt inklusive formatera.

Arbetsböckerna måste vara stängda, när du kör denna makro.  Arbetet för förmiddag I på något ändrar rätt nu för att kontrollera huruvida dem är redan öppet och därifrån endast tätt de som inte var redan öppna.  Arbetet för förmiddag I på något kodifierar också för att ta filenamesna, och att täcka namnger och sammanslutningen dem in i att namnge arbetssedeln i den nya arbetsboken.  Detta kan inte fungera, därför att täcka namnger cappeds på 32 tecken.  Jag tänkte att denna funktionsduglighet var nödvändig når jag har testat.  I grundar den konsoliderade arbetsboken hade ett dussin eller så täcker och var den hårda uppehället spårar av dem.  Låt mig veta, om du inte önskar denna.

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
Sub getSheetsFromBooks ()

Dunkelt spara, fileNames som spänner 'spänner av sparar namnger
Dunkel ws, newWS, currentWorksheet som arbetssedeln
Dunkel assemblyWorkbook, dataWorkbook som arbetsboken
Dunkel dataWorkbookName som stränger 'ska bruk detta att namnge täcker i ny WB
Dunkel screenUpdate, displayAlerts som Boolean

Fastställda fileNames = Application.Selection
Fastställd assemblyWorkbook = Application.ActiveWorkbook
Fastställd currentWorksheet = Application.ActiveSheet

screenUpdate = Application.ScreenUpdating
Application.ScreenUpdating = falskt

displayAlerts = Application.displayAlerts
Application.displayAlerts = falskt

'kretsa för att iterate över sparar namnger
För varje spara i fileNames
    
    Fastställd dataWorkbook = Workbooks.Open (spara. Värdera),
    dataWorkbook.Activate
    
    'kretsa för att kopiera arbetssedlar
    För varje ws i ActiveWorkbook.Worksheets
        
        ws. Aktivera
        Cells.Copy
        assemblyWorkbook.Activate
        Fastställd newWS = Worksheets.Add (After: =Sheets (Sheets.Count))
        Spänna (”A1”). Aktivera
        ActiveCell.PasteSpecial-deg: =xlPasteValues
        
        'namnge arbetssedlarna
        'Med newWS
        '    . Namnge = dataWorkbookName
        'Avsluta med
        
        Spänna (”A1”). Välj
        dataWorkbook.Activate

    Därefter
    'nära arbetsbok
    dataWorkbook.Close
Därefter

'gå tillbaka till arbetssedeln som du startade på programet
currentWorksheet.Activate

Application.CutCopyMode = falskt
Application.ScreenUpdating = screenUpdate
Application.ScreenUpdating = displayAlerts

Uppsättningen sparar = ingenting
Fastställda fileNames = ingenting
Uppsättning ws = ingenting
Fastställd newWS = ingenting
Fastställd assemblyWorkbook = ingenting
Fastställd dataWorkbook = ingenting

Avsluta suben
Andra lösningar  
 
programming4us programming4us