Board logo

標題: 如何在sheet1輸入資料指定到sheet2或sheet3 [打印本頁]

作者: flutist    時間: 2012-11-20 15:39     標題: 按鈕問題

[attach]13212[/attach]

請問我該如何設定「按下按鈕」
金額2000元就會自動跑到B9儲存格?
作者: flutist    時間: 2012-11-20 15:45

本帖最後由 flutist 於 2012-11-20 15:47 編輯

圖片中綠色部份是我要輸入的地方
而當我輸入2月和豐源和3000
則金額3000會自動跑到C10儲存格,但B9的2000仍然要在哦
作者: GBKEE    時間: 2012-11-20 16:01

本帖最後由 GBKEE 於 2012-11-20 16:53 編輯

回復 2# flutist
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim 月份 As Range, 廠商 As Range
  4.     With [A8]
  5.         Set 月份 = Range(.Cells, .Cells.End(xlToRight)).Find([A2], LookAT:=xlWhole)
  6.         Set 廠商 = Range(.Cells, .Cells.End(xlDown)).Find([B2])
  7.         Cells(廠商.Row, 月份.Column) = [C2]
  8.     End With
  9. End Sub
複製代碼

作者: flutist    時間: 2012-11-20 16:17

[attach]13213[/attach]

請問它出現這個字樣,我應該貼這裡對嗎?
作者: c_c_lai    時間: 2012-11-20 16:40

回復 4# flutist
可能是貼上時沒貼到。
  1. Option Explicit
複製代碼

作者: mark15jill    時間: 2012-11-20 17:01

回復 4# flutist


Option Explicit
放在最上面
作者: GBKEE    時間: 2012-11-20 17:06

回復 4# flutist
不好意思,如 5# c_c_lai 說的我少貼一個 O,關於程式碼你尚需多練習程式是如何寫的
以下程式碼同2#的程式碼
  1. Option Explicit '在模組層次中強迫每個在模組裏的變數都必須明確的宣告。
  2. 'Option Explicit 請注意 Option Explicit 陳述式必出現在模組裏,且在任何程序之前
  3. '程序中間不可再宣告其他的Sub程序
  4. Sub 按鈕_Click()  '宣告Sub 程序名稱為"按鈕_Click"
  5. 'Sub Ex()   '宣告Sub 程序名稱為"Ex"
  6. 'End Sub    'End 陳述式 結束一個程序或區塊
  7.     Dim 月份 As Range, 廠商 As Range
  8.     With [A8]
  9.         Set 月份 = Range(.Cells, .Cells.End(xlToRight)).Find([A2], LookAT:=xlWhole)
  10.         Set 廠商 = Range(.Cells, .Cells.End(xlDown)).Find([B2])
  11.         Cells(廠商.Row, 月份.Column) = [C2]
  12.     End With
  13. End Sub
複製代碼

作者: flutist    時間: 2012-11-20 18:29

謝謝解答,我的問題解決了

但還有另外一個問題

假設我的報表如圖A8~D11是分佈在3個Sheet

我要如何做修改,剛剛想了好久都沒想出來
作者: flutist    時間: 2012-11-20 22:18     標題: 如何在sheet1輸入資料指定到sheet2或sheet3

[attach]13215[/attach]

[attach]13216[/attach]

[attach]13217[/attach]

請問
我在sheet1(圖一)綠色地方輸入月份、廠商名稱、金額
按下按鈕之後
金額會跑到sheet2(圖二)和sheet3(圖三)符合相同廠商的名字的儲存格內
作者: flutist    時間: 2012-11-21 11:01

這樣設計會出現沒有設定物件變數,需修改哪裡?

Sub 按鈕1_Click()
    Dim 月份As Range,廠商As Range
    With Sheets("Sheet2").Range("A8")
        Set 月份 = Sheets("Sheet2").Range(.Cells, .Cells.End(xlToRight)).Find([A2], LookAT:=xlWhole)
        Set 廠商 = Sheets("Sheet2").Range(.Cells, .Cells.End(xlDown)).Find([B2])
        Sheets("Sheet2").Cells(廠商.Row,月份.Column) = Sheets("Sheet1").Range("C2")
    End With
   
    With Sheets("Sheet3").Range("A8")
        Set 月份 = Sheets("Sheet3").Range(.Cells, .Cells.End(xlToRight)).Find([A2], LookAT:=xlWhole)
        Set 廠商 = Sheets("Sheet3").Range(.Cells, .Cells.End(xlDown)).Find([B2])
        Sheets("Sheet3").Cells(廠商.Row, 月份.Column) = Sheets("Sheet1").Range("C2")
    End With
End Sub
作者: mark15jill    時間: 2012-11-21 11:19

回復 2# flutist

建議把附檔傳上來
這樣其他大大們才比較知道問題點在哪
附帶一提

您所詢問的問題論壇內有類似帖
可以搜索看看
作者: flutist    時間: 2012-11-21 11:27

[attach]13221[/attach]

各位大大,我上傳附檔上來了
請問如何更正?
剛剛用搜索的找sheet的相關問題,還是沒看懂
作者: mark15jill    時間: 2012-11-21 14:39

本帖最後由 mark15jill 於 2012-11-21 14:42 編輯

回復 4# flutist

你這會有幾個問題..
1.相同廠商:
    如果今天   Sheet2和 Sheet3 同時有  庚 廠商 你要判斷哪個???
2.項目沒有:
   又或者 都沒有在裡面 那要判斷?
3.判斷列數:
    若依照附檔的話,都是在第8列(橫),是要以那個為基準?
作者: GBKEE    時間: 2012-11-21 15:23

回復 12# flutist
  1. Option Explicit
  2. Sub 按鈕1_Click()
  3.     Dim Sh As Variant,月份 As Range, 廠商 As Range
  4.     For Each Sh In Array("Sheet2", "Sheet3")  '工作表的陣列
  5.         With Sheets(Sh)
  6.             Set 月份 = .Range("A8", .Range("A8").End(xlToRight)).Find(Sheets("Sheet1").[a2], LookAT:=xlWhole)
  7.             Set 廠商 = .Range("A8", .Range("A8").End(xlDown)).Find(Sheets("Sheet1").[B2])
  8.             '宣告月份,廠商為Range(物件),但Find如找不到(物件)為Nothing
  9.             If Not 月份 Is Nothing And Not 廠商 Is Nothing Then
  10.                 Sheets(Sh).Cells(廠商.Row, 月份.Column) = Sheets("Sheet1").Range("C2")
  11.             End If
  12.         End With
  13.     Next
  14. End Sub
複製代碼

作者: flutist    時間: 2012-11-21 16:02

本帖最後由 flutist 於 2012-11-21 16:03 編輯

感謝版主GBKEE 大大解決我的問題了:)




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)