2016-04-05 18 views
-1

Bu makroları ilk defa böyle yazmamışken, bunun nasıl çalıştığını anlayamıyorum. Ben aşağıda çalışması gerektiğini düşünüyorum ama değil bir snipped var. Nesne değişkeni veya birlikte blok değişken hata mesajı ayarlanmamış:Excel 2013 VBA'da Çalışma Zamanı Hatası 91'i almadan ActiveWorkbook/Workbook'ları (ad) nasıl kullanabilirim?

Benim sorun benim iş gününün başlangıcında Kesik kez tam çalışırken, fakat sonradan hep Zamanı Hatası '91 elde edilmesi.

İki çalışma kitabım açıldı ve makroyu başlatmadan önce çalışma kitabımdaki hücreleri el ile çalışmak istedim. ilk Set hata tespit edildi sonra tabaka ve kaynağı değişkenler, halen boş ve böylece her bir hataya neden olan:

Option Explicit 
Sub test() 

Dim source, sheet As Worksheet 
Dim sourcename As String 
Dim targetname As String 
Dim test As Workbook 
Workbooks("Test.xlsm").Activate 
test = ActiveWorkbook 
Debug.Print (test.Name) 

sourcename = "Tabelle1" 
targetname = "Tabelle2" 

Set sheet = ActiveWorkbook.Worksheets(sourcename) 
Set source = ActiveWorkbook.Worksheets(targetname) 

Debug.print(sheet.Name) 
Debug.print(source.Name) 

End Sub 

hata test = ActiveWorkbook

düzenlemeyi içeren doğrultusunda gerçekleşir bu türden.

Burada sorun nedir ve nasıl düzeltebilirim? Burada

+1

buldum bu soruları Alt adını değiştirmek de akılda tutmakta ted, ancak benim durumumda çalıştıklarını göremiyorum: [Nesne Değişkeni ya da blok değişkeni ayarlanmamış hatayı al ”] (http://stackoverflow.com/questions/17691458/getting-error-object-variable-or -with-block-variable-not-set) ve [VBA çalışma zamanı hatası '91': Object variable ya da blok değişkeni ayarlanmamış] (http://stackoverflow.com/questions/26551262/vba-run-time- error-91-object-variable-veya-with-block-variable-not-set) –

+0

Bu Q'ların her ikisi de cevaba işaret ediyor: 'Set' kullanın –

+0

@chrisneilsen evet, Bu durumda sadece ikinci bir çifte ihtiyacım var gibi görünüyor Gözlerim, iki saat boyunca baktığım gibi, aynı yöntemleri bir düzine kez daha kullanmış olsam da. –

cevap

0

iki konu:

hem Değişken ve Sub için aynı adı vermeyin 1st-, sen Set test = ActiveWorkbook

gibi bu hat test = ActiveWorkbook önce Set eklemek 2nd- hem

için 'Test' var

başka bir şey içine ilişkilerin oluşturulmasının görünmek sonra test

+0

Görünüşe göre Hata ilk başta kaldırılırken, örneğim kusurluydu: Set sayfası = ActiveWorkbook.Worksheets (sourcename) 'değişkeninden sonra hata ayıklayıcısına göre –

+0

kopyala - geçerli kodunuzu değiştirilen isim ve gerektiğinde "set" eklendi. Sonra tekrar yardım etmeye çalışacağım –