Vraag : Combineer aantekenvellen van verschillende werkboeken in één werkboek gebruikend VB.Net

Hallo Deskundigen.  Im worstelend met een aantal problemen met Excel 2007 en VB2008/3.5.  Belangrijkste is dat ik bladen van drie verschillende die werkboeken, moet krijgen in een afzonderlijk werkboek anders worden genoemd en dan worden gecombineerd.  Dit is het volledige blad, niet strekt zich van een blad uit.  Heeft iedereen een idee voor dit?  Vele Dank vooraf

Antwoord : Combineer aantekenvellen van verschillende werkboeken in één werkboek gebruikend VB.Net

Ik heb één of andere code vastgemaakt die de taak zal voltooien.  Laat me weten hoe dit werk.  De code loopt door door een lijst van dossierwegen te gaan die u in een waaier van cellen verstrekt.  Deze weg moet met de aandrijvingsplaats beginnen en al manier naar filename met zijn extention dalen.

Voorbeeld:

de Desktop \ ExcelImport.xlsx van C:\Users\Matthew Sheskey \

U kunt zo velen verstrekken aangezien u zou houden van.  De enige beperking is hier Excel kan 250ish- bladen slechts behandelen.

U vermeldde de bladen u slechts hebt één aantekenvel hebben.  Ik structureerde de code om alle aantekenvellen in het werkboek enkel desgevallend te nemen u wilt toevoegen meer/meer bladen later nemen.  Dit wordt gemakkelijk veranderd om slechts 1 blad te nemen als dat de gewenste functionaliteit is.

De waarden van het codedeeg nu.  Laat me weten of wilt u me de code in deeg veranderen alles met inbegrip van het formatteren.

De werkboeken moeten worden gesloten wanneer u deze macro in werking stelt.  Ik werk aan sommige veranderingen op dit ogenblik in controle of zij reeds open en van daar slechts dicht degenen zijn die niet reeds open waren.  Ik werk ook aan één of andere code om filenames en de bladnamen te nemen en hen te combineren in het noemen van het aantekenvel in het nieuwe werkboek.  Dit kan niet werken omdat de bladnamen bij 32 karakters worden afgedekt.  Ik dacht deze functionaliteit na het testen werd vereist.  Ik vond het geconsolideerde werkboek dozijn of zodat bladen had en moeilijk was om spoor van hen te houden.  Laat me weten of wilt u dit niet.

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 ()

Schemerig dossier, fileNames de waaier als van Waaier 'van dossiernamen
Schemerige ws, newWS, currentWorksheet als Aantekenvel
Schemerige assemblyWorkbook, dataWorkbook als Werkboek
Schemerige dataWorkbookName als Koord zal 'dit gebruiken om de bladen in nieuwe WB te noemen
Schemerige screenUpdate, displayAlerts zoals Van Boole

Vastgestelde fileNames = Application.Selection
Reeks assemblyWorkbook = Application.ActiveWorkbook
Reeks currentWorksheet = Application.ActiveSheet

screenUpdate = Application.ScreenUpdating
Application.ScreenUpdating = Vals

displayAlerts = Application.displayAlerts
Application.displayAlerts = Vals

'lijn over dossiernamen te herhalen
Voor Elk dossier in fileNames
    
    Reeks dataWorkbook = Workbooks.Open (dossier. Waarde)
    dataWorkbook.Activate
    
    'lijn aan exemplaaraantekenvellen
    Voor Elke ws in ActiveWorkbook.Worksheets
        
        ws. Activeer
        Cells.Copy
        assemblyWorkbook.Activate
        Reeks newWS = Worksheets.Add (na: =Sheets (Sheets.Count))
        Waaier („A1“). Activeer
        ActiveCell.PasteSpecial kleef: =xlPasteValues
        
        'noemend de aantekenvellen
        'Met newWS
        '    . Naam = dataWorkbookName
        'Eind met
        
        Waaier („A1“). Selecteer
        dataWorkbook.Activate

    Daarna
    'dicht werkboek
    dataWorkbook.Close
Daarna

'keer naar het aantekenvel terug u het programma over begon
currentWorksheet.Activate

Application.CutCopyMode = Vals
Application.ScreenUpdating = screenUpdate
Application.ScreenUpdating = displayAlerts

Vastgesteld dossier = niets
Vastgestelde fileNames = niets
Vastgesteld ws = niets
Reeks newWS = niets
Reeks assemblyWorkbook = niets
Reeks dataWorkbook = niets

Sub van het eind
Andere oplossingen  
 
programming4us programming4us