Macro megtakarítás excel lapot egy fájlt, az Excel makrók

Ahhoz, hogy használni ezt a makrót minden lapon egy Excel munkafüzet, hozzon létre egy gombot, és hozzá egy makró rá SohranitListVFayl.

Amikor futtatja a makrót (nyomja meg a gombot) jelenik meg a neve a kiválasztási párbeszédablak a fájlt menteni, akkor az aktuális lap kerül mentésre a megadott néven a kiválasztott mappában.

PS: Egyesek azt mondják, hogy mentse a lapot a fájlt Excel objektum modell SaveAs módszer. alkalmazandó munkalapobjektumot.

De furcsa módon, a végrehajtási kódot ActiveSheet.SaveAs "<имя файла>„Vezet a megőrzése az egész könyvet, amely egyenértékű a használatát kód ActiveWorkbook.SaveAs”<имя файла>"

Miért van ez a módszer archiválási munkák olyan logikátlan - személy szerint én nem értem (Úgy tűnik, a Microsoft ott valami túl okos felére)

Győződjön meg arról, hogy az összes makrót szereplő Excel beállításait.
Mielőtt a fájlt makrók, tegye a következőket:

> Keresse meg a makró fájlokat a mappába
> Jobb klikk a fájlra - Beállítások - Unlock - OK
> És csak azután, hogy kezdetben

Jó napot, szuper makró. Csak kérem, mondja meg, hogyan kell rávenni, hogy az adatok, miközben a fájl neve egy bizonyos cella feszültsége. Munka1 A1?

Sub SohranitListVFayl ()
On Error Resume Next
„A neve almappákat, amely alapértelmezés szerint a program kérni fogja, hogy mentse a fájlt
Const REPORTS_FOLDER = "Jelentések"
„Hozzon létre egy mappát a fájl, ha még nem rendelkezik
mkdir ThisWorkbook.Path „” REPORTS_FOLDER
„Válassza a kiindulási hely
ChDrive Bal (ThisWorkbook.Path, 1): chdir ThisWorkbook.Path „” REPORTS_FOLDER

„Visszavonása a párbeszédablak, hogy kérje a neve az elmentett fájl
Filename = Application.GetSaveAsFilename ( "otchot.xls", "Excel Reports (* .xls)". _
„Adja meg a fájl nevét a jelentés”, „Save”)
„Ha a felhasználó hajlandó választani egy fájlnevet - törli a fájl mentése lap
Ha VarType (Filename) = vbBoolean Akkor Exit Sub

„Zárja be a mentett fájlt
„(Vegye ki a következő sort a zárás létrehozott fájl nem szükséges)
ActiveWorkbook.Close False
End If
End Sub

Jó napot! Szembesülnek azzal a problémával, és segítenek megtalálni a webhely ki. Nagyon remélem a segítséget.

Van egy asztal, a makro végez valamilyen manipuláció az asztal, és tárolja a fájlokat a mappába. Szükséges, hogy a folyamat hozzon létre egy mappát az aktuális dátum (dd), és már létrehozott egy mappát tartalmazó változó (usrnm) a neve. Macro dolgozni, amíg hozzá, hogy megteremtse a mappát a mappa.

Dim usrnm As String
usrnm = tartomány ( "N6"). Value
Dim dd As String
dd = formátumot (most, "dd-hh-nn", vbUseSystemDayOfWeek)
Dim TDD As String
TDD = formátumot (most, "dd-mm-nn (hh'mm'ss)")
Dim x Mivel Boole
x = Len (Dir ( "D: \ ________ munka" dd „” usrnm, vbDirectory))
Ha usrnm = "" És Len (Dir ( "D: \ munka ________ \ hiba", vbDirectory)) = 0 Then
Mkdir "D: \ munka ________ \ error"
ActiveWorkbook.SaveAs ( "D: \ munka ________ \ hiba") „Hiba_” TDD, Fájlformátum: = 51
End If
ActiveSheet.Range ( "$ A $ 5: $ AE $ 9999") AutoFilter Field :. = 14, Criteria1: = usrnm
Ha x = False Ekkor
Mkdir "D: \ ________ munka" dd „” usrnm
ChDrive Bal ( "D: \ ________ munka", 1): könyvtárváltókat "D: \ ________ munka" dd „” usrnm
ActiveWorkbook.SaveAs bsnm "_" usrnm "_" TDD, Fájlformátum: = 51
End If
Ha x = True Ezután
ChDrive Bal ( "D: \ ________ munka", 1): könyvtárváltókat "D: \ ________ munka" dd „” usrnm
ActiveWorkbook.SaveAs bsnm "_" usrnm "_" TDD, Fájlformátum: = 51
End If

Üdvözöljük Kairat.
Ez nem kell egy másik makrót (makró a cikkben leírt, nem valami egészen más)
A makró is meg kell változtatni - sok fájl egy sorban Workbooks.Open típuskód „C: \ * xlsx.” Nem nyitott
(Szükséges ciklus fájlok)
Tudjuk, hogy egy makró érdekében. Vagy keresse fel a fórumokat Excel, ha azt akarjuk, ingyen.

Jó napot, azt kell megváltoztatni a makrót akkor másolja, nem egy könyv, hanem több, és helyezze őket egy lapon, egyik a másik után inf. függőlegesen, azaz a le

Sub Get_Value_From_Book2 ()
Dim sShName As String, sAddress As String, vData
Application.ScreenUpdating = False
Workbooks.Open "C: \ * xlsx."
sAddress = "A1: L26"
vData = Sheets ( "eNodeBOutdoor fin"). Tartomány (sAddress) .Value
ActiveWorkbook.Close False
Ha IsArray (vData) Ekkor
[A1] .Resize (UBound (vData, 1), UBound (vData, 2)). Value = vData
más
[A1] = vData
End If
Application.ScreenUpdating = True
End Sub

Sub Save ()
On Error Resume Next
„A neve almappákat, amely alapértelmezés szerint a program kérni fogja, hogy mentse a fájlt
Const REPORTS_FOLDER = "Executive"
„Hozzon létre egy mappát a fájl, ha még nem rendelkezik
mkdir ThisWorkbook.Path „” REPORTS_FOLDER
„Válassza a kiindulási hely
ChDrive Bal (ThisWorkbook.Path, 1): chdir ThisWorkbook.Path „” REPORTS_FOLDER

„Visszavonása a párbeszédablak, hogy kérje a neve az elmentett fájl
Fájlnév = Application.GetSaveAsFilename ([e4] ".xlsm", "Executive (* .xlsm)". _
„Adja meg a fájl nevét a jelentés”, „Save”)
„Ha a felhasználó hajlandó választani egy fájlnevet - törli a fájl mentése lap
Ha VarType (Filename) = vbBoolean Akkor Exit Sub

Próbáltam írni a típus xlsx hogy xlsm és alsó szett mentett egy könyvet a benne makrókkal, de a végén azt írta, hogy post alatt.
Mellékelem a makrót, hogy megpróbáltam módosítani. Nem vagyok különleges írásban makrók, így magam érdekel, hogy megkönnyítse a munkáját.

Azt írja: „A következő alkatrészeket nem lehet menteni makro-mentes könyv:
-VB projekt
Fájl mentéséhez valamennyi alkatrészt, kattintson a „Nem”, majd a „File Type” válassza ki a fájltípust makro-kompatibilis "

Ha a makrók modul lap - a másolandó együtt a lap, és működni fog.
Ha a makrók modul - ami, persze, miközben a lap a fájl, ezek a modulok nem kerülnek át az új fájl