標題:
Excel VBA 用textbox新增表單資料問題
[打印本頁]
作者:
Sofie
時間:
2016-5-19 15:03
標題:
Excel VBA 用textbox新增表單資料問題
大家好~
最近才開始學習VBA,想要設計textbox來新增表單資料,目前寫的程序可以執行,但是都會蓋掉第一列的標題欄,想請問該如何修改才能讓資料直接從第二列開始依序往下新增,謝謝!
[attach]24315[/attach]
作者:
luhpro
時間:
2016-5-19 22:31
回復
1#
Sofie
壓縮檔大小只有 22 個Bytes -----> Excel檔沒加進來, 請重壓後再重傳上來.
作者:
Sofie
時間:
2016-5-20 09:04
重新上傳附件了,感謝提醒!
執行前的表格↓
[attach]24325[/attach]
執行後的表格↓(標題就被覆蓋了,想修改成從第二列開始新增資料,邏輯不太好想不出來
)
[attach]24326[/attach]
Option Explicit
Public n As Integer
Private Sub CommandButton1_Click()
n = n + 1
If Range("b" & n) <> "" Then
Sheets("Sheet1").Range("b" & n).Value = TextBox1.Value
End If
If Range("c" & n) <> "" Then
Sheets("Sheet1").Range("c" & n).Value = TextBox2.Value
End If
End Sub
複製代碼
[attach]24324[/attach]
作者:
starry1314
時間:
2016-5-20 10:42
回復
3#
Sofie
Private Sub CommandButton1_Click()
n = Cells(ActiveSheet.Rows.Count, 2).End(xlUp).Row + 1
'往最後有資料列+1貼上
If Range("b" & n) = "" Then
Sheets("Sheet1").Range("b" & n).Value = TextBox1.Value
End If
If Range("c" & n) = "" Then
Sheets("Sheet1").Range("c" & n).Value = TextBox2.Value
End If
End Sub
作者:
Sofie
時間:
2016-5-23 11:37
回復
4#
starry1314
感謝回覆!
後來我繼續延伸問題,想按年齡級距於不同起始列新增資料,比如說年齡大於60歲的從第20列開始新增,
步驟1. key 張XX 12
步驟2. key 林OO 65
步驟3. key林OO 24
但是當年齡大於60的資料進來之後,第三筆小於60歲的資料就會跟著步驟3的結果往下新增,而不是從步驟1的結果往下,
想請問我少判斷了什麼地方,謝謝~
[attach]24341[/attach]
Private Sub CommandButton1_Click()
n = Cells(ActiveSheet.Rows.Count, 2).End(xlUp).Row + 1 '往最後有資料列+1貼上
If Range("b" & n) = "" And TextBox2.Value > 60 Then
Sheets("Sheet1").Range("b" & 20 + n).Value = TextBox1.Value
Sheets("Sheet1").Range("c" & 20 + n).Value = TextBox2.Value
Else
Sheets("Sheet1").Range("b" & n).Value = TextBox1.Value
Sheets("Sheet1").Range("c" & n).Value = TextBox2.Value
End If
End Sub
複製代碼
作者:
starry1314
時間:
2016-5-23 13:42
回復
5#
Sofie
If Range("B" & n) = "" And TextBox2.Value > 60 Then
If Range("
C
" & n) = "" And TextBox2.Value > 60 Then
判斷年齡的地方錯了....
從20列開始新增..沒想到怎麼做
因為目前是以第20列+最後一列的總列數 所以中間會一直空很大格
作者:
koo
時間:
2016-5-23 16:51
x = TextBox2.Value
If x < 60 Then
y = [B20].End(xlUp).Row + 1
Else
y = [B65536].End(xlUp).Row + 1
If y < 20 Then y = 20
End If
Cells(y, 2) = x
作者:
ML089
時間:
2016-5-23 17:39
Option Explicit
Public n As Integer
Private Sub CommandButton1_Click()
If TextBox2.Value > 60 Then n = 20 Else n = 2
Do
If Cells(n, "B") = "" Then Exit Do
n = n + 1
Loop
Sheets("Sheet1").Cells(n, "B").Value = TextBox1.Value
Sheets("Sheet1").Cells(n, "C").Value = TextBox2.Value
End Sub
複製代碼
作者:
Sofie
時間:
2016-6-4 10:08
回復
6#
starry1314
回復
7#
koo
回復
8#
ML089
感謝各位前輩的分享,目前使用koo大的方法可行!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)