想在excel用vba做一個的輸入視窗,裡面分3個格子,第一格輸入橫軸定義的名稱,如A-Z,第二格輸入縱軸定義的名稱,如1-10,第三格輸入數值。有可能輸入B-5-60後按enter,60便能出現在橫軸B縱軸5的交會位置嗎?

2015-11-13 3:13 am
更新1:

更新一下條件,第一個先生的敘述,雖然很短,不過很接近我想要的答案。但我要的是縱、橫軸都是使用自己定義的名稱,而非excel本來就有的座標系統。 縱軸(第一格)則是輸入不同的登記項目,如作業1、作業2、作業3(因為項目固定,想用下拉是選單點選),橫軸(第二格)為人物編號輸入,約20個左右。第三格輸入數值後按enter後即出現在符合兩個條件交叉的空白位置上。

回答 (3)

2015-11-13 5:08 am
✔ 最佳答案
基本是這樣其他請自行修飾
Private Sub TextBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
ta = TextBox1
tb = TextBox2
Range(ta & tb) = TextBox3
End If
End Sub
2015-11-14 9:01 am
2015-11-13 5:58 am
1.請建立表單TextBox1,TextBox2,TextBox3及CommandButton1 4個控制項
2.程式碼請參考如下:
Private Sub CommandButton1_Click()
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ", TextBox1.Value) = 0 Or TextBox1.Value = "" Then
MsgBox "格子1資料輸入不齊全!"
Exit Sub
End If
If TextBox2.Value > 10 Or TextBox2.Value < 1 Or TextBox2.Value = "" Then
MsgBox "格子2資料輸入不在區間內!"
Exit Sub
End If
Dim a
If InStr(TextBox3.Value, TextBox1.Value & "-") = 0 Or InStr(TextBox3.Value, TextBox2.Value & "-") = 0 Then
MsgBox "格子3資料輸入與格子1及格子2不合!"
Exit Sub
End If
If InStr(TextBox3.Value, TextBox1.Value & "-") > 0 And InStr(TextBox3.Value, TextBox2.Value & "-") > 0 Then
a = Replace(Replace(TextBox3.Value, TextBox1.Value & "-", ""), TextBox2.Value & "-", "")
Cells(TextBox2.Value, Cells(1, TextBox1.Value).Column) = a
MsgBox "完成!"
End If
End Sub
3.若有需要擴充可自行調整


收錄日期: 2021-05-04 02:00:50
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20151112191355AAXSq5T

檢視 Wayback Machine 備份