返回列表 上一主題 發帖

[發問] 欄位貼上問題

[發問] 欄位貼上問題

塗料存貨管理(20140806).rar (63.7 KB)

想請問一下
按下讀出可以將8/6的資料全部讀取出來
然後利用"操作"工作表 更改8/7的存貨

按下寫入可以
跳出一個inputbox詢問 要增加為幾月幾號的資料
再將更改完的資料(除了A1:G2)的資料

(圖中紅框框部分)
往"存貨資料"工作表B欄最下面往下貼

(圖中紅線部分)
然後將Inputbox內的日期貼到與資料同行

(將圖中A欄空白資料用inputbox內的內容填滿)
請問這些步驟這要怎麼完成?

原本有想過 使用巨集錄製
將整個操作工作表的內容
複製到其他工作表 然後把標題列(A1:G2)刪除
再複製到存貨資料工作表內
但怎麼寫都寫不出來
還請各位大大幫幫忙

結果讀出變成無法使用??
bridetobe 發表於 2014/8/7 11:28
  1. Private Sub CommandButton2_Click()
  2.    Range("A59").Select
  3.     Selection.CurrentRegion.Select
  4.     Selection.Copy
  5.     Sheets("Sheet4").Select
  6.     With Sheet4
  7.         ActiveSheet.Paste
  8.         'Range("A1:G2").Select   '這裡出錯
  9.         '這CommandButton2是"操作"工作表[物件模組]的程序
  10.         'Range("A1:G2").Select是"操作"工作表的Range.Select,不是ActiveSheet的Range.Select
  11.         
  12.         '如CommandButton2_Click()程式碼複製在一般模組
  13.         '這Range是ActiveSheet的Range
  14.     .Range("A1:G2").Select  '前面的. 表為With Sheet4的物件,屬性..
  15.     Application.CutCopyMode = False
  16.     Selection.ClearContents
  17.     Range("A4").Select
  18.     Selection.CurrentRegion.Select
  19.     Selection.Copy        
  20. End With
  21. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 11# Hsieh


也謝謝版大~~

你們兩個的方法都可以

我一直膩在最基礎的寫法
一直想不到該怎麼用

真的非常謝謝兩位

TOP

回復 10# GBKEE

真的非常謝謝!
寫入欄位可以使用了
結果讀出變成無法使用??

TOP

回復 9# bridetobe
  1. Private Sub CommandButton2_Click()
  2. Rng = Range([A3:G3], [A3:G3].End(xlDown)).Value  '資料讀入陣列
  3. With Sheets("存貨資料")
  4. d = InputBox("輸入日期(例2014/7/1):", , Format(Application.Max(.[A:A]) + 1, "yyyy/m/d"))  '預設為最大日期加1
  5. If d = "" Then Exit Sub  '取消輸入
  6. Set A = .Cells(.Rows.Count, 1).End(xlUp).Offset(1)  '找到資料尾的下一列A欄位置
  7. A.Offset(, 1).Resize(UBound(Rng), 7) = Rng  '將資料寫入工作表
  8. A.Resize(UBound(Rng), 1) = d   'A欄寫入日期
  9. End With
  10. End Sub
複製代碼
學海無涯_不恥下問

TOP

本帖最後由 GBKEE 於 2014-8-7 10:47 編輯

回復 9# bridetobe
  1. Private Sub CommandButton1_Click()
  2.     Dim srcrange As Range
  3.     Dim a_date  As String
  4.     Dim fndrange As Range, fstaddress As String, i As Integer
  5.     a_date = InputBox("輸入日期(例2014/7/1):", , "2014/7/1")
  6.     Application.ScreenUpdating = False
  7.    '******************
  8.     Range("A3", Range("A3").End(xlDown)).Resize(, 7).ClearContents
  9.     '*****************
  10.     If a_date = "" Then Exit Sub
複製代碼
  1. Private Sub CommandButton2_Click()
  2.    Dim Rng As Range
  3.    With Sheets("操作")
  4.        Set Rng = .Range("A3", .Range("A3").End(xlDown)).Resize(, 7)
  5.        With Sheets("存貨資料").Range("B1").End(xlDown).Offset(1)
  6.             .Resize(Rng.Rows.Count, Rng.Columns.Count) = Rng.Value
  7.             .Offset(, -1).Resize(Rng.Rows.Count) = Sheets("操作").[b1]
  8.         End With
  9.     End With
  10. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 7# GBKEE


解決了
非常謝謝版大~~~

TOP

本帖最後由 GBKEE 於 2014-7-30 15:15 編輯

回復 6# bridetobe
Find 會根據上ㄧ次Find的參數來搜尋
  1. Private Sub CommandButton1_Click()
  2.     Dim srcrange As Range
  3.     Dim a_date  As String
  4.     Dim fndrange As Range, fstaddress As String, i As Integer
  5.     a_date = InputBox("輸入日期(例2014/7/1):", , "2014/7/1")
  6.     If a_date = "" Then Exit Sub  '取消時
  7.     With Sheet2
  8.     Set srcrange = .Range("A2", .[a2].End(xlDown))
  9.         srcrange.Interior.ColorIndex = xlNone
  10.         Set fndrange = srcrange.Find(what:=a_date, AFTER:=srcrange(srcrange.Count), LookIn:=xlValues, lookat:=xlWhole) '搜尋文字
  11.         'After     選擇性的 Variant。  指定儲存格,尋找將從該儲存格之後開始。此儲存格對應於從使用者介面尋找時的使用中儲存格位置。
  12.         '注意 After 必須是尋找範圍中的單個儲存格。請記住尋找是從該儲存格之後   開始的;必須等到該方法循環回到此儲存格時,才會搜尋其內容。
  13.         '如果未指定此引數,搜尋將從範圍的左上角儲存格之後開始
  14.                
  15.         'LookAt  選擇性的 Variant。可為下列 XlLookAt 常數之一:xlWhole 或 xlPart。
  16.         
  17.     End With
  18.     If Not fndrange Is Nothing Then
  19.         'fstaddress = fndress = fndrange.Address  '這裡錯誤 讓他無止盡的貼下去
  20.         fstaddress = fndrange.Address
  21.         i = 3
  22.         Do
  23.             fndrange.Interior.Color = vbRed
  24.             Cells(i, 1).Resize(1, 7) = fndrange.Offset(, 1).Resize(1, 7).Value
  25.             Set fndrange = srcrange.FindNext(AFTER:=fndrange)
  26.             i = i + 1
  27.         Loop Until fndrange.Address = fstaddress
  28.     Else
  29.         MsgBox ("沒有資料")
  30.     End If
  31. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 5# GBKEE

謝謝
解決了無止盡貼下去了
可是發現不只貼上7/1號的
還有夾雜一些其他的日期的
7/7 等等的 貼到了7xx多列

TOP

回復 4# bridetobe
試試看
  1. Private Sub CommandButton1_Click()
  2.     Dim srcrange As Range
  3.     Dim a_date  ' As String
  4.     Dim fndrange, fstaddress, i
  5.     a_date = InputBox("輸入日期(例2014/7/1):", , "2014/7/1")
  6.     If a_date = "" Then Exit Sub  '取消時
  7.     With Sheet2
  8.     Set srcrange = .Range("A2", .[a2].End(xlDown))
  9.         Set fndrange = srcrange.Find(what:=a_date, AFTER:=srcrange(srcrange.Count), LookIn:=xlValues) '搜尋文字
  10.         'After     選擇性的 Variant。  指定儲存格,尋找將從該儲存格之後開始。此儲存格對應於從使用者介面尋找時的使用中儲存格位置。
  11.         '注意 After 必須是尋找範圍中的單個儲存格。請記住尋找是從該儲存格之後   開始的;必須等到該方法循環回到此儲存格時,才會搜尋其內容。
  12.         '如果未指定此引數,搜尋將從範圍的左上角儲存格之後開始
  13.     End With
  14.     If Not fndrange Is Nothing Then
  15.         'fstaddress = fndress = fndrange.Address  '這裡錯誤 讓他無止盡的貼下去
  16.         fstaddress = fndrange.Address
  17.         i = 3
  18.         Do
  19.         Cells(i, 1).Value = fndrange.Offset(, 1)
  20.         Cells(i, 2).Value = fndrange.Offset(, 2)
  21.         Cells(i, 3).Value = fndrange.Offset(, 3)
  22.         Cells(i, 4).Value = fndrange.Offset(, 4)
  23.         Cells(i, 5).Value = fndrange.Offset(, 5)
  24.         Cells(i, 6).Value = fndrange.Offset(, 6)
  25.         Cells(i, 7).Value = fndrange.Offset(, 7)
  26.         Set fndrange = srcrange.FindNext(AFTER:=fndrange)
  27.         i = i + 1
  28.         Loop Until fndrange.Address = fstaddress
  29.     Else
  30.         MsgBox ("沒有資料")
  31.     End If
  32. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 有心就有福,有願就有力,自造福田,自得福緣。
返回列表 上一主題