Vraag : VBA om gebiedswaarden op een lijst tijdens een lijn bij te werken

Het blok van code onder invoer-specifieke aantekenvellen van 3 verschillende dossiers van Excel in één lijst.  Onmiddellijk nadat `Year1.xlsx' in `tblMaster' wordt ingevoerd, moet ik de waarde voor elk verslag onder gebiedsnaam `bijwerken fldYear' in de doellijst (`tblMaster').  

The taxeert het zou bijwerken aan is van de vormcontrole van „[vormen]! [frmName]! [txtYear1]“.

Then wanneer `Year2.xlsx' wordt ingevoerd, fldYear `' met waarde die worden bijgewerkt wordt vermeld in „[vormen]! [frmName]! [txtYear2]“.  Dan het zelfde kostuum worden gevolgd wanneer het invoeren van `Year3.xlsx“. inzicht

Any in dit?
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:
Public SubImportExcelSheetsfIANL ()
Schemerige objXL als Voorwerp
Schemerige stal, xlPath als Koord, I als Geheel

Schemerige myPath (), j, iCnt als Geheel
myPath = Serie („\ \ server \ Year1.xlsx“, _
               „\ \ server \ Year2.xlsx“, _
               „\ \ server \ Year3.xlsx“)
Voor j = LBound (myPath) Aan UBound (myPath)
    
Als Dir (myPath (j)) <> "" toen

Reeks objXL = CreateObject („Excel.Application“)
    objXL.Workbooks.Open myPath (Waar j),
    Met objXL
        Voor I = 1 aan. Worksheets.Count
            Als InStr (. Aantekenvellen (I). Naam, „widget“) toen
            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, _
             „tblMaster“, myPath (Waar j). Aantekenvellen (I). Naam &“! A: M "
            Eind als
        Daarna
    Eind met
    objXL.Quit
    Reeks objXL = niets

    Anders
    iCnt = iCnt + 1
Eind als
Daarna
Als iCnt = 3 toen
Aantekenvellen van MsgBox de „bestaan niet. Weggaande sub nu! “, vbInformation, „Fout“
Sub van de uitgang
Eind als

Antwoord : VBA om gebiedswaarden op een lijst tijdens een lijn bij te werken

test dit

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:
Openbare SubImportExcelSheetsfIANL ()
Schemerige objXL als Voorwerp
Schemerige stal, xlPath als Koord, I als Geheel

Schemerige myPath (), j, iCnt als Geheel
myPath = Serie („\ \ server \ Year1.xlsx“, _
               „\ \ server \ Year2.xlsx“, _
               „\ \ server \ Year3.xlsx“)
Voor j = LBound (myPath) Aan UBound (myPath)
    
Als Dir (myPath (j))  <> "" Toen

Reeks objXL = CreateObject („Excel.Application“)
    objXL.Workbooks.Open myPath (Waar j),
    Met objXL
        Voor I = 1 aan. Worksheets.Count
            Als InStr (. Aantekenvellen (I). Naam, „widget“) toen
            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, _
             „tblMaster“, myPath (Waar j). Aantekenvellen (I). Naam &“! A: M "
            Eind als
        Daarna
        
    Eind met
    objXL.Quit
    Reeks objXL = niets
    Selecteer Geval j
        Geval 0
        CurrentDb.Execute de „update tblMaster plaatste fldYear='" & [Vormen]! [frmName]! [txtYear1] & „'waar fldYear“ ongeldig is
        Geval 1
        CurrentDb.Execute de „update tblMaster plaatste fldYear='" & [Vormen]! [frmName]! [txtYear2] & „'waar fldYear“ ongeldig is
        Geval 2
        CurrentDb.Execute de „update tblMaster plaatste fldYear='" & [Vormen]! [frmName]! [txtYear3] & „'waar fldYear“ ongeldig is
        
        
    Uitgezocht eind
    Anders
    iCnt = iCnt + 1
Eind als
Daarna
Als iCnt = 3 toen
Aantekenvellen van MsgBox de „bestaan niet. Weggaande sub nu! “, vbInformation, „Fout“
Sub van de uitgang
Eind als

Sub van het eind
Andere oplossingen  
 
programming4us programming4us