2012-09-06 21 views
5

Şu an için çalışma kitabımın Set komutuna kodlanmış olduğu şekilde, bu şekilde ayarlanmış çalışma kitabım var. Bunu yapmanın bir yolu olup olmadığını merak ediyorum. sıvı nerede? Bu kod nerede olursa olsun (başka bir çalışma kitabında) kod, yeni çevreye uyum sağlayacaktır.Excel'de etkin çalışma kitabının değeri ayarlama VBA

Bu mantıklı mı?

Şu an kullandığım şey aşağıda, ne yapmak istediğim ActiveWorkbook veya bunun yerine kullanılan bir şeydir. Bu, kodun başlangıcında ve ortada belirlenmeyeceğinden.

Set wbOOR = Application.Workbooks("Open Order Report.xlsm")

cevap

20

Sen Set wbOOR = ThisWorkbook

Sadece netleştirmek için muhtemelen peşindeler

ThisWorkbook daima kod aktif çalışma kitabına atıfta edecektir

ActiveWorkbook bulunur çalışma kitabına atıfta edecektir

Nasıl çalıştığınıza dikkat edin Birden fazla çalışma kitabı ile uğraşırken bunu se. Gerçekten en iyi seçenek olarak neye ulaşmak istediğinize bağlıdır.

Set wbOOR = ActiveWorkbook 
+0

+1. –

+1

Kişisel olarak hiçbir zaman kullanıcı GUI olaylarını yakalama dışında 'ActiveWorkbook' kullanıyorum ve daha sonra deneyin ve kaçının. – user3357963

+3

Katılıyorum. Ben wkbMain = ThisWorkbook veya Çalışma Kitapları ("Ana") '' Set wkbProcess = Çalışma Kitabı ("İşlem") 'gibi değişkenlere ihtiyacım olan tüm çalışma kitaplarını ayarlama eğilimindedir. ActiveWorkbook'un kıllı olabileceği ve kodu en az beklenildiği anda değiştirebileceği en güvenli yoldur. –

2

İhtiyacınız.

Dim Workbk as workbook 
Set Workbk = thisworkbook 

Artık programladığınız her şey, içerdiği makro çalışma kitabınız için geçerli olacaktır. Özellikle OP'in biraz belirsiz olması nedeniyle farkı ve ne zaman ve nerede uygun olabileceğini açıklamak için

+0

Bence ooo var ... –

+0

Bu mu? Excel VBA ile bugüne kadar gittikten sonra, işleri yapmak için bulduğum pek çok yol var, bazen bazen en basit yolları unutuyorum. Teşekkürler! –

+0

Sorunuzu yeniden okudum ActiveWorkbook ya da Thisworkbook'un peşinde olup olmadığından emin değilim. –

0

bu deneyin Hepsi bu