返回列表 上一主題 發帖

如何在sheet1輸入資料指定到sheet2或sheet3

如何在sheet1輸入資料指定到sheet2或sheet3

1.JPG





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

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

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

TOP

回復 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
複製代碼

TOP

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

回復 4# flutist

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

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

test.rar (7.7 KB)

各位大大,我上傳附檔上來了
請問如何更正?
剛剛用搜索的找sheet的相關問題,還是沒看懂

TOP

回復 2# flutist

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

您所詢問的問題論壇內有類似帖
可以搜索看看

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

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

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

TOP

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

但還有另外一個問題

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

我要如何做修改,剛剛想了好久都沒想出來

TOP

回復 4# flutist
不好意思,如 5# c_c_lai 說的我少貼一個 O,關於程式碼你尚需多練習程式是如何寫的
以下程式碼同2#的程式碼
  1. Option Explicit '在模組層次中強迫每個在模組�堛瘍僂くㄔ眸楨�確的宣告。
  2. 'Option Explicit 請注意 Option Explicit 陳述式必出現在模組�堙A且在任何程序之前
  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
複製代碼

TOP

回復 4# flutist


Option Explicit
放在最上面

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

        靜思自在 : 是非當教育,讚美作警惕。
返回列表 上一主題