Excel VBA 用textbox新增表單資料問題
- 帖子
- 4
- 主題
- 1
- 精華
- 0
- 積分
- 5
- 點名
- 0
- 作業系統
- Office
- 軟體版本
- 2010
- 閱讀權限
- 10
- 註冊時間
- 2016-4-10
- 最後登錄
- 2016-7-11
|
Excel VBA 用textbox新增表單資料問題
大家好~
最近才開始學習VBA,想要設計textbox來新增表單資料,目前寫的程序可以執行,但是都會蓋掉第一列的標題欄,想請問該如何修改才能讓資料直接從第二列開始依序往下新增,謝謝!
Book.zip (22 Bytes)
|
-
-
Book.zip
(22 Bytes)
|
|
|
|
|
|
- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
2#
發表於 2016-5-19 22:31
| 只看該作者
回復 1# Sofie
壓縮檔大小只有 22 個Bytes -----> Excel檔沒加進來, 請重壓後再重傳上來. |
|
|
|
|
|
|
- 帖子
- 4
- 主題
- 1
- 精華
- 0
- 積分
- 5
- 點名
- 0
- 作業系統
- Office
- 軟體版本
- 2010
- 閱讀權限
- 10
- 註冊時間
- 2016-4-10
- 最後登錄
- 2016-7-11
|
3#
發表於 2016-5-20 09:04
| 只看該作者
|
|
|
|
|
|
- 帖子
- 471
- 主題
- 121
- 精華
- 0
- 積分
- 579
- 點名
- 0
- 作業系統
- WIN10
- 軟體版本
- OFFICE2019
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2015-4-16
- 最後登錄
- 2023-1-17
|
4#
發表於 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 |
|
|
|
|
|
|
- 帖子
- 4
- 主題
- 1
- 精華
- 0
- 積分
- 5
- 點名
- 0
- 作業系統
- Office
- 軟體版本
- 2010
- 閱讀權限
- 10
- 註冊時間
- 2016-4-10
- 最後登錄
- 2016-7-11
|
5#
發表於 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的結果往下,
想請問我少判斷了什麼地方,謝謝~
- 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
複製代碼 |
|
|
|
|
|
|
- 帖子
- 471
- 主題
- 121
- 精華
- 0
- 積分
- 579
- 點名
- 0
- 作業系統
- WIN10
- 軟體版本
- OFFICE2019
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2015-4-16
- 最後登錄
- 2023-1-17
|
6#
發表於 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列+最後一列的總列數 所以中間會一直空很大格 |
|
|
|
|
|
|
- 帖子
- 60
- 主題
- 4
- 精華
- 0
- 積分
- 64
- 點名
- 0
- 作業系統
- w7-32
- 軟體版本
- 2013.2003
- 閱讀權限
- 20
- 註冊時間
- 2014-11-23
- 最後登錄
- 2016-6-6
|
7#
發表於 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 |
|
|
|
|
|
|
- 帖子
- 2025
- 主題
- 13
- 精華
- 0
- 積分
- 2053
- 點名
- 0
- 作業系統
- WIN7
- 軟體版本
- Office2007
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 台北市
- 註冊時間
- 2011-3-2
- 最後登錄
- 2024-3-14
     
|
8#
發表於 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
複製代碼 |
|
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式
|
|
|
|
|
- 帖子
- 4
- 主題
- 1
- 精華
- 0
- 積分
- 5
- 點名
- 0
- 作業系統
- Office
- 軟體版本
- 2010
- 閱讀權限
- 10
- 註冊時間
- 2016-4-10
- 最後登錄
- 2016-7-11
|
9#
發表於 2016-6-4 10:08
| 只看該作者
回復 6# starry1314
回復 7# koo
回復 8# ML089
感謝各位前輩的分享,目前使用koo大的方法可行! |
|
|
|
|
|
|