昱得資訊工作室
麻辣學園
歡迎光臨, 訪客. 請先 登入註冊一個帳號.
2014-07-24, 12:59:18
昱得資訊工作室
首頁 說明 登入 註冊 想當作者?
新聞: 會員注意!!麻辣家族討論區已轉換新系統,請移駕[麻辣家族新論壇]!!


+  麻辣家族討論區
|-+  MS Office 系列
| |-+  EXCEL
| | |-+  Excel程式區 (版主: Hsieh)
| | | |-+  各大vba高手請教一下循環輸入數字的問題
0 會員 以及 1 訪客 正在閱讀本篇主題. « 上一篇主題 下一篇主題 »
頁: [1] 2 3 向下 列印
作者 主題: 各大vba高手請教一下循環輸入數字的問題  (閱讀 4127 次)
jchou
中學生
*
離線 離線

文章: 170


各大vba高手請教一下循環輸入數字的問題
« 於: 2008-08-10, 03:52:50 »

如附件

* KK1.rar (0 KB - 已被下載 1 次.)
已記錄
jchou
中學生
*
離線 離線

文章: 170


Re: 各大vba高手請教一下循環輸入數字的問題
« 回覆文章 #1 於: 2008-08-10, 04:30:54 »

對不起 重新上傳附件

* KK1.rar (0 KB - 已被下載 8 次.)
已記錄
GBKEE
47年次
碩士班
*
離線 離線

文章: 1450



Re: 各大vba高手請教一下循環輸入數字的問題
« 回覆文章 #2 於: 2008-08-10, 07:35:56 »

程式碼:
Private Sub Worksheet_Change(ByVal T As Range)
  Dim ID As Range, 數字 As Range, ID區 As Range, 數字區 As Range
  Set ID區 = Range("A11:A15")
  Set 數字區 = Range("R11:AI15")
  Application.EnableEvents = False ''如果指定物件能觸發事件,則本屬性為 True
  Set ID = Application.Intersect(T(1), ID區) '' T(1)為所選取範圍的第一個儲存格 以此類推
  Set 數字 = Application.Intersect(T(1), 數字區)
  
  If Not ID Is Nothing And IsNumeric(T(1)) And Len(T(1)) = 4 Then
    'Not ID Is Nothing 表為所選取範圍T(1)與ID區重疊即在ID區內
    With Sheets("資料庫")
      Set C = .Columns("O").Find(T, , , 1)
      If Not C Is Nothing Then
        Cells(T.Row, 2) = C.Cells.Offset(, -13)
        Cells(T.Row, 3) = C.Cells.Offset(, -11)
        Cells(T.Row, 17) = C.Cells.Offset(, -10)
        Set C = Nothing
      End If
    End With
    T.Offset(, 17).Select
  ElseIf 數字 Is Nothing = False Then
    '數字 Is Nothing 表為所選取範圍T(1)與數字區重疊即在數字區內
    If IsNumeric(Cells(T(1).Row, "A")) And T(1).Offset(, -1) <> "" And (T(1) > 0 And T(1) <= 9) Then
                    ''And (T(1) > 0 And T(1) <= 9) 設定為1-9
      If T(1).Column = 數字區(數字區.Columns.Count).Column Then
        T(1).Offset(1, -(數字區.Columns.Count - 1)).Select
      Else
        T(1).Offset(, 1).Select
      End If
     End If
  End If
  Application.EnableEvents = True
  End Sub
« 最後編輯時間: 2008-08-10, 07:42:16 由 GBKEE » 已記錄

知道的不多,不知道的更多. 不知道就請問! 知道會更多,不知道會不多.
jchou
中學生
*
離線 離線

文章: 170


Re: 各大vba高手請教一下循環輸入數字的問題
« 回覆文章 #3 於: 2008-08-10, 08:35:19 »

GBKEE 前軰
 我的知識不佳以至於無法全盤了解,現我把它稍加修改代入卻無法執行.
輸入代碼後無法帶出資料庫資料,儲存格卻往下跳請幫忙檢查 謝謝你

Private Sub Worksheet_Change(ByVal T As Range)
  Dim ID As Range, 數字 As Range, ID區 As Range, 數字區 As Range
  Set ID區 = Range("A11:A154")
  Set 數字區 = Range("R11:AI154")
  Application.EnableEvents = False
  Set ID = Application.Intersect(T(1), ID區) 
  Set 數字 = Application.Intersect(T(1), 數字區)
  
  If Not ID Is Nothing And IsNumeric(T(1)) And Len(T(1)) = 4 Then
   With Sheets("資料庫")
      Set C = .Columns("O").Find(T, , , 1)
      If Not C Is Nothing Then
        Cells(T.Row, 2) = C.Cells.Offset(, -13)
        Cells(T.Row, 3) = C.Cells.Offset(, -11)
        Cells(T.Row, 17) = C.Cells.Offset(, -10)
        Set C = Nothing
      End If
    End With
    T.Offset(, 17).Select
  ElseIf 數字 Is Nothing = False Then
    If IsNumeric(Cells(T(1).Row, "A")) And T(1).Offset(, -1) <> "" And (T(1) > 0 And T(1) <= 9) Then
 If T(1).Column = 18 Then
        T(1).Offset(1, -17)Select
      Else
        T(1).Offset(, 1).Select
      End If
     End If
  End If
  Application.EnableEvents = True
  End Sub
已記錄
GBKEE
47年次
碩士班
*
離線 離線

文章: 1450



Re: 各大vba高手請教一下循環輸入數字的問題
« 回覆文章 #4 於: 2008-08-10, 11:41:03 »

 jchou 你好
**輸入代碼後無法帶出資料庫資料** 你只將ID區範圍擴大到A154並不引響到程式執行
請再說清楚些
If T(1).Column = 18   Then
T(1).Offset(1, -17).Select
Else
T(1).Offset(, 1).Select
End If
18是(數字區)第一欄的欄位 要執行T(1).Offset(1, -17).Select 應該是(數字區)最後一欄的欄位 (AI)->35 才對
我用  數字區(數字區.Columns.Count).Column 表示 ,當數字區要改變時就不需重新跟改
已記錄

知道的不多,不知道的更多. 不知道就請問! 知道會更多,不知道會不多.
jchou
中學生
*
離線 離線

文章: 170


Re: 各大vba高手請教一下循環輸入數字的問題
« 回覆文章 #5 於: 2008-08-11, 03:45:52 »

 GBKEE 謝謝可以用了了 是否可再討教一下如下問題 :
數字區 R11~AI11是否有更快的方法來輸入 ㄝ 比如在 R11輸入3後
則自動跳至S11等待輸入這樣就不需輸入一個數字後再按跳格健待全部輸入完至Column35 , 待完成輸入代號調出資料後直至跳至R12,則如法泡制
這樣比較輕鬆 ( 單號 1~9應無問題吧但如 10 ?13? )是否可有解
已記錄
GBKEE
47年次
碩士班
*
離線 離線

文章: 1450



Re: 各大vba高手請教一下循環輸入數字的問題
« 回覆文章 #6 於: 2008-08-12, 00:30:26 »

這樣比較輕鬆 ( 單號 1~9應無問題吧但如 10 ?13? )是否可有解
jchou 你好
Worksheet_Change事件是輸入完畢後才觸動的事件 在輸入中是無法進行的
已記錄

知道的不多,不知道的更多. 不知道就請問! 知道會更多,不知道會不多.
jchou
中學生
*
離線 離線

文章: 170


Re: 各大vba高手請教一下循環輸入數字的問題
« 回覆文章 #7 於: 2008-08-12, 01:52:20 »

GBKEE 了解謝謝
已記錄
頁: [1] 2 3 向上 列印 
« 上一篇主題 下一篇主題 »
自訂搜尋
跳到:  


Google PageRank Checker
本頁花了 2.766 秒, 以及 20 次的資料庫查詢.