Makromum çalışırken yaptığım tüm değişiklikleri depolamak için kullanacağım aşağıdaki alt rutinim var.Çok boyutlu diziden adresleri yapıştırdıktan sonra tıklanabilir hücre başvuruları nasıl yapılır
Public ChangeLog() As String
Sub Test()
Erase ChangeLog
' Dim WS As Worksheet: Set WS = Sheets.Add(After:=Worksheets(Worksheets.Count))
' WS.Name = "Change Log"
' WS.Tab.Color = vbYellow
Log ActiveSheet.Range("A2"), "Test1"
Log ActiveSheet.Range("B2"), "Test2"
Log ActiveSheet.Range("C2"), "Test3"
'ActiveSheet.Range("B3") = ChangeLog
ActiveSheet.Range("A1").Resize(UBound(ChangeLog, 2) + 1, 2) = WorksheetFunction.Transpose(ChangeLog)
End Sub
Function Log(Cell As Range, Reason As String) As String
On Error Resume Next
If (Not Not ChangeLog) = 0 Then
ReDim ChangeLog(0 To 1, 0 To 1)
ChangeLog(0, 0) = "Cells": ChangeLog(1, 0) = "Changes Made"
ChangeLog(0, 1) = Cell.Address: ChangeLog(1, 1) = Reason
Else
ReDim Preserve ChangeLog(0 To 1, 0 To UBound(ChangeLog, 2) + 1)
ChangeLog(0, UBound(ChangeLog, 2)) = Cell.Address: ChangeLog(1, UBound(ChangeLog, 2)) = Reason
End If
On Error GoTo 0
End Function
Sonuç:
ben ben çalışma yapıştırmak diziye ChangeLog
, hatanın için hücre adresini ve nedenini yazma kullanıcıya dikkat gerekir, düzenleme yapmak her zaman Makamın sonundaki Etkin sayfanın yanında. Test amaçlı olarak, yeni elektronik tabloyu eklediğim bölümü hariç tuttum, böylece çok boyutlu diziyi doğru bir şekilde ele aldığımdan emin olabilirim (bu benim bir zayıflığım). Bu iyi çalışır, ancak hücre adreslerini köprüler/tıklanabilir yapmak istiyorum, böylece kullanıcıyı bu hatanın olduğu/hesaplandığı ilk elektronik tablodaki noktaya getirecekler (makronun temizlenip temizlenmediğine veya belirli bir noktaya işaret edip etmediğine bağlı olarak) hata).
Yani, sorularım şunlardır: diziden yeni elektronik tabloya üzerine yapıştırarak zaman
- nasıl tıklanabilir hücre başvuruları hepsi yapılabilir? En hızlı yöntem ne olurdu?
- Bu verimli bir yöntem midir yoksa daha kolay bir yol var mı (her seferinde işlevi çağırmak yerine)?
, döngü ve gerekli hücreye işaret eden her birine bir köprü ekleyin. Bağlantı eklerken bir makro kaydederseniz, size kullanmanız gereken sözdizimini verecektir. –
Bunu düşünüyordum, ama en hızlı yol bu mu? Hücre adresini diziye kaydettiğimde formülü ayarlayabilir miyim, böylece yapıştırıldığında otomatik olarak bir bağlantı olur mu? – CaffeinatedCoder
Bilmiyorum ama test etmek kolay ... –