Takže som sa bavil s podporou spoločnosti Microsoftodpovedať na túto otázku, ale ich kód jednoducho nefunguje. Som zmätený o tom, ako nedefinujú x, alebo možno x vždy sa rovná premennej vo VBA? Každopádne, snažím sa kopírovať všetko pomenované rozsahy v jednom zošit a preniesť ichdo iného zošita. Musím to urobiť pre 50-oddelené pracovné zošity a v základnom zošite je 30-40 menovaných rozsahov. Skutočne nechcem kopírovať tieto chyby ručne. Tu je kód, ktorý dali k tomuto problému:
Sub Copy_All_Defined_Names()
" Loop through all of the defined names in the active
" workbook.
For Each x In ActiveWorkbook.Names
" Add each defined name from the active workbook to
" the target workbook ("Book2.xls" or "Book2.xlsm").
" "x.value" refers to the cell references the
" defined name points to.
Workbooks("trial run.xlsm").Names.Add Name:=x.Name, _
RefersTo:=x.Value
Next x
End Sub
Spustenie tohto mi dáva nasledujúcu chybu:
a zdôrazňuje nasledujúci kód:
"skúšobný beh.xlsm "je len prázdny zošit a je uložený ako makro-povolený, to je môj cieľový zošit.Zdá sa hlúpe, že musieť požiadať o pomoc ladenie makra, ktoré Microsoft napísal, ale ja som trochu na konci môjho lana tu.
Pre pôvodnú stránku som to dostal, pozri tu: Podpora spoločnosti Microsoft
Takto vyzerajú moje pojmenované rozsahy:
odpovede:
0 pre odpoveď č. 1Je ťažké povedať, ale mám podozrenie, že váš reťazec RefersTo je> 256 znakov: Ak to tak zlyhá, pretože VBA nemôže zvládnuť referenčné reťazce> 256 znakov.