Θέμα: VBA Formula To Comment

Εμφάνιση ενός μόνο μηνύματος
  #1  
Παλιά 15-10-14, 12:31
jockey17 Ο χρήστης jockey17 δεν είναι συνδεδεμένος
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 24-03-2012
Περιοχή: Θεσσαλονίκη
Μηνύματα: 70
Προεπιλογή Formula To Comment

Καλημέρα στην παρέα του φόρουμ.

Τον παρακάτω κώδικα για μεταφορά των τύπων από το κελί στο σχόλιο του κελιού (και αντίστοιχα ο επόμενος κώδικας για μεταφορά των τύπων από το σχόλιο στο κελί) τον εφαρμόζω σε ένα φύλλο εργασίας όπου το UsedRange είναι περίπου 70 στήλες και 1700 γραμμές. Από τις 70 στήλες οι μισές περιέχουν τύπους όπου με Match / Index γεμίζουν με στοιχεία από δύο – τρία βοηθητικά φύλλα. Ο χρόνος εκτέλεσης είναι γύρω στα 7 λεπτά. Υπάρχει τρόπος με διαφορετική σύνταξη του κώδικα να βελτιωθεί ο χρόνος εκτέλεσης;

Sub FormulaToComment()
Dim c As Range
Dim WorkRng As Range
Set WorkRng = WS_OS.UsedRange
With Application
.Calculation = xlCalculationManual
.Cursor = xlWait
.ScreenUpdating = False
.DisplayStatusBar = False
.EnableEvents = False
End With
For Each c In WorkRng
If c.HasFormula = True Then
c.AddComment c.Formula
c.Value = c.Value
Else
End If
Next
With Application
.Calculation = xlCalculationAutomatic
.Cursor = xlDefault
.ScreenUpdating = True
.DisplayStatusBar = True
.EnableEvents = True
End With
End Sub
'--------------------------------------------------------------------------------------------
Sub CommentToFormula()
Dim c As Range
Dim WorkRng As Range
Dim cComment As String
Set WorkRng = WS_OS.UsedRange
With Application
.Calculation = xlCalculationManual
.Cursor = xlWait
.ScreenUpdating = False
.DisplayStatusBar = False
.EnableEvents = False
End With
For Each c In WorkRng
If Not c.Comment Is Nothing Then
cComment = c.Comment.Text
c.Formula = cComment
c.ClearComments
Else
End If
Next
With Application
.Calculation = xlCalculationAutomatic
.Cursor = xlDefault
.ScreenUpdating = True
.DisplayStatusBar = True
.EnableEvents = True
End With
End Sub

Φιλικά
Δημήτρης
Απάντηση με παράθεση