Excel2003'te bir çalışma kitabındaki tüm hücreleri formüllerle bulmak ve farklı bir sayfadaki birkaç sütunda adreslerini ve formüllerini almak için bir makro yazıyorum.Bir hücrenin formülünü excel vba kullanarak metne dönüştürme
ben sadece iyi çalışır
Public Function ShowFormula(cell As Range) As String
ShowFormula = cell.Formula
End Function
kullanarak tek hücre formülünü gösterebilir biliyorum ama elle tüm hücreleri bulmak zorunda istemiyordu çünkü ben şu makro yazdım tüm hücreler gayet, ancak bunun yerine metin olarak formüle görüntüleme bulur beni
Sub Macro2()
Dim i As Integer
Dim targetCells As Range
Dim cell As Range
Dim referenceRange As Range
Dim thisSheet As Worksheet
Set referenceRange = ActiveSheet.Range("CA1")
With referenceRange
For Each thisSheet In ThisWorkbook.Sheets
If thisSheet.Index >= referenceRange.Parent.Index Then
Set targetCells = thisSheet.Cells.SpecialCells(xlCellTypeFormulas, 23)
For Each cell In targetCells
If cell.HasFormula Then
.Offset(i, 0).Value = thisSheet.Name
.Offset(i, 1).Value = cell.Address
.Offset(i, 2).Value = CStr(cell.Formula)
i = i + 1
End If
Next
End If
Next
End With
End Sub
için hepsini bulmak için, liste formül sonuçlarını görüntüler.
Formülleri formül yerine metin olarak çıkarmak için ne kaçırıyorum?
Teşekkür deneyin! Cevabınız hakkında hızlı bir soru. Bu çalışırken, '= A1 + B2 + C3 + ... 'çıktılar. Bu formülleri daha sonra farklı hücrelere geri takmayı planlıyorum ve bu da "'" nin kaldırılmasını gerektirecek. Metin formatı zorlamadan bunu yapmanın bir yolu var mı? Makroda değil, neden UDF ile birlikte çalıştığını merak ediyorum ...? –
"'" nin kaldırılması önemsizdir 'Sağ (s, Len (s) - 1)' ama ben sizin dikkatinizi çekerim. Değiştirilmemiş formülü yapıştırmadan önce hedef hücrenin biçimini Metne ayarlamayı deneyebilir ve bunun nasıl gittiğini görebilirsiniz. –
Metni biçimlendirmek bu hile yaptı. Çok basit, henüz bana gelmedi :(Çok teşekkürler! –