VBA ve Excel'in yeni sürümü, yıllardır hiçbir şey programlamamıştır. Hızlı soru. Excel'de bir Envanter listesi oluşturmaya çalışıyoruz Verilerin eklenebileceği bir giriş kutusu çağıran bir düğme ile. Giriş kutularındaki veriler ilk kullanılabilir satıra yerleştirilmelidir. Satır başına 10 sütun vardır ve her satır Envanter'de yeni bir öğeyi temsil eder. ": Gerekli Nesne Çalışma zamanı hatası 424":Excel işlevleri - giriş kutusundaki değerler serbest hücreye yerleştirilir
Dim iDate, iVessel, iOrder, iCourier, iWaybill, iSender, iPcs, iWeight, iRemark As Variant
Dim col As Integer
Public Function selectFirstBlankCell()
Dim sourceCol As Integer, rowCount As Integer, currentRow As Integer
Dim currentRowValue As String
col = 2
sourceCol = col
rowCount = Cells(Rows.Count, sourceCol).End(xlUp).Row
While col < 11
For currentRow = 1 To rowCount
currentRowValue = Cells(currentRow, sourceCol).Value
If IsEmpty(currentRowValue) Or currentRowValue = "" Then
Cells(currentRow, sourceCol).Select
If sourceCol = 2 Then
Cell.Value = iDate
ElseIf sourceCol = 3 Then
Cell.Value = iVessel
ElseIf sourceCol = 4 Then
Cell.Value = iOrder
ElseIf sourceCol = 5 Then
Cell.Value = iCourier
ElseIf sourceCol = 6 Then
Cell.Value = iWaybill
ElseIf sourceCol = 7 Then
Cell.Value = iSender
ElseIf sourceCol = 8 Then
Cell.Value = iPcs
ElseIf sourceCol = 9 Then
Cell.Value = iWeight
ElseIf sourceCol = 10 Then
Cell.Value = iRemark
End If
col = col + 1
End If
Next
Wend
End Function
Public Sub newParcel_Click()
Call selectFirstBlankCell
iDate = InputBox("Tast inn dato, format dd.mm.yyy")
iVessel = InputBox("Tast inn båtens navn")
iOrder = InputBox("Tast inn eventuell P.O.")
iCourier = InputBox("Tast inn courier")
iWaybill = InputBox("Tast inn waybillnummer")
iSender = InputBox("Tast inn avsender")
iPcs = InputBox("Tast inn antall kolli")
iWeight = InputBox("Tast inn vekt")
iRemark = InputBox("Tast inn eventuelle anmerkninger")
End Sub
Ben VBA sayfasına kodunuzu yapıştırılan ve ilk bakışta, bu Cell.Value = idate (veya diğer seçeneklerden biri) takılıyor. iDate henüz başlatılmamıştır, çünkü selectedFirstBlankCell'i çağırdınız. Başka problemler olabilir, ama karşılaştığım ilk şey bu. Niyetinizin ne olduğundan emin değilsiniz, henüz düzeltmek için bir yol önermek çok zor. –
Bence Cell.Value = ... 'yerine' Selection.Value = ... 'kullanmak istediniz. Ama gerçekten [Seçimi kullanmaktan nasıl kaçınmalısınız] okumalısınız (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros). – Kyle