2012-12-26 65 views
2

enter image description hereEXCEL VBA動態數據條目

  1. 在範圍紅色框(「d:d」)是值從Me.ComboBox1.Value
  2. 黃色和綠色的顏色指分別來自Me.TextBox1Me.TextBox2的數據。在我中,Me.TextBox1Me.TextBox2中的值將根據在Me.ComboBox1中選擇的值插入到此工作表中。
  3. 因此,在這種情況下,我希望將黃色和綠色相應地輸入到用戶選擇的紅色中。
  4. 另一個額外的事情是,我把.OffSet(1,0).EntireRow.Insert黃色和綠色數據

回答

1

這應做到:

nextrow = Sheets("DB Cust").Range("C" & Sheets("DB Cust").Rows.Count).End(xlUp).Row + 1 

UPDATE按照你的編輯,我想類似這樣的東西可能是你所需要的。請注意,這取決於是否有始終是在E列的每個數據塊值,以便爲它工作:

Dim lngNewRow As Long 
Dim strLookupValue As String 

strLookupValue = "A" ' or B/C/D etc. 

lngNewRow = Sheets("DB Cust").Range("D:D").Find(strLookupValue).Offset(, 1).End(xlDown).Row + 1 
Sheets("DB Cust").Rows(lngNewRow).Insert 
Sheets("DB Cust").Cells(lngNewRow, "E").Value = "Data for column E" 
Sheets("DB Cust").Cells(lngNewRow, "F").Value = "Data for column F" 

至於貴點4,如果「d」是在最後一個值列表,那麼爲什麼你需要插入額外的空白行,可能它下面的所有行都是空白的?

+0

我編輯了我的問題以獲得更好的理解。感謝你的付出。 –

0

我不知道,但你在呼喚你的範圍的方式似乎很奇怪,我的最後一排。嘗試一種定義計數範圍的不同方式。

更改此:

nextrow = WorksheetFunction.CountA(Sheets("DB Cust").Range("C:C")) + 2 

要這樣:

Dim myWB as Workbook, DBcust as Worksheet 
Set myWB = Excel.ActiveWorkbook 
Set DBcust = myWB.Worksheets("DB Cust") 

nextrow = Excel.WorksheetFunction.CountA(DBcust.Range(DBcust.Cells(1,3),DBcust.Cells(DBcust.UsedRange.Rows.Count,3)) + 2 

我指定的書和紙的變量更高的可靠性,但你可以明確地再次聲明他們,如果你想。此代碼假定工作簿是當前活動的工作簿,否則您將不得不使用工作簿名稱設置變量。

此外,它看起來並不像在「With」塊中需要offset函數的「rfound」部分。 。 。這就是「With」的意思。這只是一個小東西,但是像這樣毫無意義的代碼只會讓你頭痛,所以我的建議就是把它拿出來。

我還沒有加載到VBA IDE中,所以請仔細檢查拼寫錯誤。謝謝!

UPDATE:

閱讀您的評論後,我把你的代碼和它是什麼,你想要做一個仔細看看。看起來你正試圖將textbox1的值(無論這可能是什麼......這將有助於如果你稍微解釋一下這部分內容)放入一個與用戶在combobox1中定義的搜索結果位置偏移的單元格中。 nextrow變量位於行偏移參數內,但位置已經在您想要的位置。嘗試改變這一點:

With rfound 

rfound.Offset(nextrow, 1).Value = TextBox1.Value 
rfound.Offset(nextrow, 2).Value = TextBox1.Value 
rfound.Offset(nextrow, 3).Value = TextBox1.Value 
rfound.Offset(nextrow, 4).Value = TextBox1.Value 
rfound.Offset(nextrow, 5).Value = TextBox1.Value 
rfound.Offset(nextrow, 6).Value = TextBox1.Value 
rfound.Offset(nextrow, 7).Value = TextBox1.Value 
rfound.Offset(nextrow, 8).Value = TextBox1.Value 
MsgBox ("Data entry success") 

End With 

要這樣:

With rfound 

.Offset(0, 1).Value = TextBox1.Value 
.Offset(0, 2).Value = TextBox1.Value 
.Offset(0, 3).Value = TextBox1.Value 
.Offset(0, 4).Value = TextBox1.Value 
.Offset(0, 5).Value = TextBox1.Value 
.Offset(0, 6).Value = TextBox1.Value 
.Offset(0, 7).Value = TextBox1.Value 
.Offset(0, 8).Value = TextBox1.Value 
MsgBox ("Data entry success") 

End With 

您可能注意到我也去掉了多餘的「rfound」按我以前的建議。看看這是否有效,如果是這樣,你可能想要一起刪除newrow變量。

祝你好運,讓我們知道它是怎麼回事。

+0

我需要一個公式來將突出顯示的紅色'1'放入單元格'c2'中,然後繼續c3,c4,c4 ..等等。 –

+0

請參閱我更新的答案。 – Lopsided

+0

爲了更好的理解,我編輯了上面的問題。請看一看。 –