2016-03-19 27 views
2
Private Sub CommandButton1_Click() 
Dim lRow As Long 
Dim ws As Worksheet 
Set ws = Worksheets("Sheet2") 
lRow = ws.Cells(Rows.Count, 1).End(x1Up).Offset(1, 0).Row 
With ws 
.Cells(lRow, 1).Value = UserForm1.TextBox1.Value 
.Cells(lRow, 2).Value = UserForm1.TextBox2.Value 
End With 
End Sub 

Bu makroyu bazı girişler hücreye eklemek için kullanıyorum. Sadece 2 değeri metin kutularına eklemek ve girişleri Sayfa 2'ye taşımak için düğmeye basmak istiyorum. Ikinci kez, 2 girdiler ilk giris altinda hareket ettirilecek ve bu sayede ...Çalışma zamanı hatası 1004 Excel 2013

Düğmeye her basışımda "Çalışma Zamanı hatası 1004" mesajını alıyorum.

cevap

2

Değişim ws.Cells(Rows.Count, 1).End(x1Up).Offset(1, 0).Row

End (x l Yukarı) içinde kalın karakter ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row için aslan değil 1 (bir) olduğu gibi bir l'dir.

Ayrıca, kullanıcı formu içinde aşağıdaki Me.TextBox1.Value'u kullanabilirsiniz. Kullanıcı formunu isimlendirmek de işe yarayacak, ancak diğeri yazmak daha hızlı olacaktır.

+0

İyi yakalama! Bu süper vizyonun kobralara yardım etmesi gerekiyor. – Jeeped

+0

Kesinlikle! Neden hala hayatta olduğumu düşünüyorsun? ;) – mongoose36

+0

Çok teşekkür ederim. Bazen en sık yapılan hatalar gözünüzün önündedir ve onları göremezsiniz. – Ariakan

4

Sorununuz, uzman tarafından mongoose36 tarafından tespit edilmiştir, ancak burada ileride bu konuların nasıl bulunacağı ve ele alınacağı aşağıda açıklanmaktadır.

Derleme hatası: Değişken her yeni oluşturulan kod sayfasının en üstünde Option Explicit deyimi koyacağız Seçenekler ► Editör özellik sayfası ► VBE en Araçları içinde Değişken Deklarasyonu gerektir Ayar

tanımlanmamış. Bu , bildirgesindeki değişkende doğru değişken türünü kullanmanızın yanı sıra yazım hataları gibi saçma kodlama hatalarını da önleyecektir. Bildirimde bulunmadan anında oluşturulan değişkenler, varyant/nesne türünün tamamıdır. Çalışma zamanında sırasında bir hata aldığınızda

option_explicit
Basit değişken/sabit yazım hatası derleyici hatası

(X1UP xlUp olmalıdır), VBE içinde alt gidip F8 dokunun. Derleyici derhal bir Derleme hata mesajı verir ve ifadenin rahatsız edici kısmını vurgular.

Bu, tüm derleme hatalarını çözmeyecek olsa da, basit hataları hızlı ve kolay bir şekilde tanımlayıp düzeltir.

ek - derleme hatası: sözdizimi hatası

ele alınması gereken yanlış yazılmış değişkeni içeren özel bir durum yoktur. Bir hane ile başlayan bir ismin beyan, atama veya kullanımı yasadışı sözdizimidir. Sözdizimi hatası, Değişken tanımlanmamış hatanın yerini alır; iki hata vardır, ancak birincil rapor edilen hata, Sözdizimi hatasıdır. Bu durumda, tüm kod çizgisi vurgulanır. İlk karakter olarak rakam ile

option_explicit_number
Değişken yazım hatası derleyici hatası

Sen açık ebeveyn çalışma sayfası referansları ile iyi kod yazmak ve örtük ActiveSheet property güvenerek değil (1-sıralı LROW olmalıdır). Require değişken bildirim seçeneği ile bir adım daha ileri gidin.Seçeneği Açık'un kullanılması, "en iyi uygulama" olarak kabul edilen 'dur.

+1

Daha fazla kabul edilemez! – mongoose36

+0

"Değişken Bildirimi Gerektir" ile ilgili ipucu için teşekkür ederiz. – Ariakan

İlgili konular