Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
![]() |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
![]()
Θα ήθελα να ρωτήσω σχετικά με απάντηση - λύση που δώθηκε στο φίλο Γιώργο (Locos) στο θέμα αυτό εδώ. Τι τροποποίηση πρέπει να γίνει στον κώδικα VBA ούτως ώστε το όνομα του αρχείου εξάγεται να μήν παίρνει το όνομα ClearBook.xls, αλλά ένα όνομα που θα το παίρνει από το κελί Α1του αρχείου. Ευχαριστώ εκ των προτέρων Γιώργος Τελευταία επεξεργασία από το χρήστη gr8styl : 02-11-10 στις 00:47. Αιτία: Διόρθωση συνδέσμου |
#2
| |
![]() Παράθεση:
Στο πρώτο συνημμένο του φίλου Γιάννη CreateCLearBook.zip η γραμμή του κώδικα που αποθηκεύει το βιβλίο είναι η Κώδικας: .SaveAs ThisWorkbook.Path & "\" _ & Format(lngCopyNum, "000") & "_ClearBook.xls" .SaveAs Range("A1").value Ελπίζω να κατάλαβα το ζητούμενο. |
#3
| ||||
| ||||
![]()
Καλημέρα! Συμφωνώ με την προσέγγιση του Θανάση ![]() Με τον τρόπο αυτό, το κελί A1 που θα περιέχει το όνομα που θα δοθεί στο αρχείο θα πρέπει βρίσκεται απαραίτητα στο ενεργό φύλλο κατά την εκτέλεση του κώδικα. Έστω ότι το όνομα που θα πάρει το βιβλίο εργασίας μέσω του κώδικα βρίσκεται στο Φύλλο1 και στο κελί A1. Αν πχ. το τρέχον φύλλο είναι το Φύλλο2, η τιμή που θα λάβει υπόψη του ο κώδικας θα είναι αυτή του κελιού Α1 του τρέχοντος φύλλου δηλ. του φύλου2 και όχι αυτή που έχουμε ορίσει στο φύλλο1. Θα πρότεινα να οριστούν ονόματα που θα ζητούνται από τον κώδικα. Επίσης, για να αποκτήσει περισσότερη ελαστικότητα η όλη διαδικασία , μπορούμε:
Παραδειγματικά, ορίζουμε τα παρακάτω ονόματα:
και χρησιμοποιούμε τον παρακάτω κώδικα, Κώδικας: Option Explicit Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long Sub CreateClearBook() Dim wbNewBook As Workbook Dim Sheets_InNewBook%, Calc& Dim wbName$, WKSToCopy$, strFilePath$, WKSRange As Range On Error Resume Next wbName = Range("WorkBookName") WKSToCopy = Range("SheetToTransfer") If Trim(Range("MyRange")) <> vbNullString Then Set WKSRange = Sheets(WKSToCopy).Range(Range("MyRange")) End If If WKSRange Is Nothing Then Set WKSRange = Sheets(WKSToCopy).UsedRange End If strFilePath = Range("File_Path") Calc = Application.Calculation With Application .ScreenUpdating = False Sheets_InNewBook = .SheetsInNewWorkbook .SheetsInNewWorkbook = 1 If Calc <> xlCalculationManual Then .Calculation = xlCalculationManual End With On Error GoTo ErrHandler WKSRange.Copy Set wbNewBook = Workbooks.Add Range("A1").PasteSpecial (xlPasteAll) Range("A1").PasteSpecial (xlPasteColumnWidths) wbNewBook.SaveAs NextFreeName(strFilePath, wbName), ThisWorkbook.FileFormat ExitHere: On Error Resume Next wbNewBook.Close False With Application .SheetsInNewWorkbook = Sheets_InNewBook If .Calculation <> Calc Then .Calculation = Calc End With Exit Sub ErrHandler: MsgBox Err.Description, vbExclamation, "Error: " & Err Resume ExitHere End Sub Function NextFreeName(strPath$, strFile$) As String Dim strEnum%, sFile$ strPath = Replace(strPath & "\", "\\", "\") MakeSureDirectoryPathExists strPath sFile = Dir(strPath & "*" & strFile, vbNormal) Do Until sFile = "" strEnum = Application.Max(strEnum, IIf(IsNumeric(Left(sFile, 3)), Left(sFile, 3), 0)) sFile = Dir Loop NextFreeName = strPath & IIf(strEnum = 0, "001_", _ Format(strEnum + 1, "000_")) & strFile End Function Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[Γενικά] Κλείδωμα βιβλίου | manolis | Excel - Ερωτήσεις / Απαντήσεις | 3 | 11-03-20 21:29 |
[Excel07] Δικαιώματα βιβλίου | stam75 | Excel - Ερωτήσεις / Απαντήσεις | 5 | 21-02-16 19:40 |
βοήθεια βιβλίου | ΤΑΣΟΣ | Access - Ερωτήσεις / Απαντήσεις | 1 | 27-05-11 11:21 |
[Excel07] ΜΟΡΦΟΠΟΙΗΣΗ ΒΙΒΛΙΟΥ | alexkour | Excel - Ερωτήσεις / Απαντήσεις | 1 | 10-01-11 17:22 |
[Γενικά] Δημιουργία λίστας φύλλων ενός βιβλίου | Billy | Excel - Ερωτήσεις / Απαντήσεις | 3 | 14-06-10 08:01 |
Η ώρα είναι 13:56.