返回列表 上一主題 發帖

請問SHEET轉換紀錄的問題

請問SHEET轉換紀錄的問題

1.請問一下,如何將A SHEET存到B SHEET當J欄有出現任何值時對應的該列就會複製到B SHEET(空白處延伸)中


2.另一種是當按下按鈕時(對應工單號碼),則該工單對應的所有列就複製到B SHEET空白處

B SHEET要一直累加,不能留空白
謝謝

Book1111.rar (38.99 KB)

Tony

本帖最後由 GBKEE 於 2012-2-14 17:46 編輯

回復 1# tonycho33
***[D1:F1] 不可為空白***
  1. Sub Ex()'1.請問一下,如何將A SHEET存到B SHEET當J欄有出現任何值
  2.     Dim xText As String
  3.     xText = "<>" '
  4.    Data_Copy 10, xText
  5. End Sub
  6. Sub ExA() '2.另一種是當按下按鈕時(對應工單號碼),則該工單對應的所有列就複製到B SHEET空白處
  7.     Dim xText As String
  8.     xText = ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text
  9.     Data_Copy 1, xText
  10. End Sub
  11. Private Sub Data_Copy(xF As Integer, xCriteria As String)
  12.     Dim Sh As Worksheet
  13.     Application.ScreenUpdating = False
  14.     Application.DisplayAlerts = False
  15.      With Sheet7   'Sheets("A")
  16.         .AutoFilterMode = False
  17.         .Range("a1").AutoFilter Field:=xF, Criteria1:=xCriteria
  18.         Set Sh = Sheets.Add
  19.         .UsedRange.SpecialCells(xlCellTypeVisible).Copy Sh.[a1]
  20.         Sh.UsedRange.Offset(1).Copy Sheet6.Cells(Rows.Count, "A").End(xlUp).Offset(1)
  21.       'Sheet6->Sheet("B")
  22.         Sh.Delete
  23.         .AutoFilterMode = False
  24.         .Activate
  25.     End With
  26.     Application.ScreenUpdating = True
  27.     Application.DisplayAlerts = True
  28. End Sub
複製代碼

TOP

本帖最後由 tonycho33 於 2012-2-14 18:46 編輯

回復 2# GBKEE


    請問『1.請問一下,如何將A SHEET存到B SHEET當J欄有出現任何值時對應的該列就會複製到B SHEET(空白處延伸)中』
有個問題第一次輸入J欄時某一格儲存格可以紀錄
               第二次再輸入時,因為原本第一次還在,所以會在重複記錄到
可以判斷有重複的話就不會紀錄嗎
另外請問
Data_Copy 10, xText

Data_Copy 1, xText
為什麼是1和10差在哪

謝謝
Tony

TOP

回復 3# tonycho33
"第二次再輸入時,因為原本第一次還在,所以會在重複記錄到"
你又沒說 有篩選過的要刪掉 !!!
.Range("a1").AutoFilter Field:=xF, Criteria1:=xCriteria
Range("a1").AutoFilter:    在 A1橫向的欄位 [A1:J1] 自動篩選  
Field:=1   :篩選的欄位 ->A欄 ; Field:=10   :篩選的欄位 ->J 欄

TOP

本帖最後由 tonycho33 於 2012-2-15 10:36 編輯

回復 4# GBKEE

真不好意思
非常感謝你的指導
請問『 有篩選重複的要刪掉』要如何修改
讓B sheet 出現單一的對應欄位就好
  1. Sub 刪除重複1()
  2. Dim i As Long
  3. Application.ScreenUpdating = False
  4. For i = Range("a65536").End(xlUp).Row To 3 Step -1
  5.   If WorksheetFunction.CountIf(Range("a2:a" & i), Cells(i, 1)) > 1 Then
  6.     Cells(i, 1).EntireRow.Delete
  7.   End If
  8. Next
  9. Application.ScreenUpdating = True
  10. End Sub
複製代碼
這個是比對A欄重複的
如果我想改比對A欄&C欄重複的要如何修改呢
謝謝
Tony

TOP

回復 5# tonycho33

超版,版主大概是沒有作不出來的問題
重點是希望發問者:
1.事先作好功課,把希望的功能描述清楚,不要反反覆覆,改來改去(幾次後真的沒人想幫)
2.附上EXCEL檔案,數據應把所有可能的情形都考慮進來


SHEET B之K欄不可有資料
同一工單若有的完成,有的未完成有時會分開顯示(應可接受吧)
  1. Sub Ex()                       '1.將A SHEET存到B SHEET 當J欄有出現任何值
  2.     Dim xText As String
  3.     xText = "<>"
  4.     Data_Copy 10, xText
  5. End Sub
  6. Sub ExA()                      '2.按下按鈕時(對應工單號碼),該工單對應的所有列就複製到B SHEET空白處
  7.     Dim xText As String
  8.     xText = ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text
  9.     Data_Copy 1, xText
  10. End Sub
  11. Private Sub Data_Copy(xF As Integer, xCriteria As String)
  12.     Dim Sh As Worksheet
  13.     Application.ScreenUpdating = False
  14.     Application.DisplayAlerts = False
  15.     With Sheet7   'Sheets("A")
  16.         .AutoFilterMode = False
  17.         .Range("a1").AutoFilter Field:=xF, Criteria1:=xCriteria
  18.          Set Sh = Sheets.Add
  19.         .UsedRange.SpecialCells(xlCellTypeVisible).Copy Sh.[a1]
  20.          Sh.UsedRange.Offset(1).Copy Sheet6.Cells(Rows.Count, "A").End(xlUp).Offset(1)
  21.         'Sheet6->Sheet("B")
  22.          Sh.Delete
  23.         .AutoFilterMode = False
  24.         .Activate
  25.     End With
  26.     Call deleterow                       '刪除B工作表之重覆列
  27.     Application.ScreenUpdating = True
  28.     Application.DisplayAlerts = True
  29. End Sub
  30. Sub deleterow()                          '刪除B工作表之重覆列
  31.     With Sheet6
  32.       R = .[A65536].End(xlUp).Row
  33.       For RM = 2 To R
  34.         For MM = 1 To 9                  'SHEET B之K欄不可有資料
  35.             .Cells(RM, 11) = .Cells(RM, 11) & .Cells(RM, MM)
  36.         Next MM
  37.       Next RM
  38.       For I = 2 To R Step 1
  39.         If (WorksheetFunction.CountIf(.Columns(11), .Cells(I, 11)) > 1) Then
  40.            .Rows(I).Delete
  41.            I = I - 1
  42.         End If
  43.       Next
  44.       .Columns(11) = ""
  45.     End With
  46. End Sub
複製代碼
Book1111.rar (48.49 KB)

TOP

回復 5# tonycho33
  1. Private Sub Data_Copy(xF As Integer, xCriteria As String)
  2.     Dim Sh As Worksheet, Rng(1 To 2) As Range, xRow As Range
  3.     Application.ScreenUpdating = False
  4.     Application.DisplayAlerts = False
  5.      With Sheet7   'Sheets("A")
  6.         .AutoFilterMode = False
  7.         .Range("a1").AutoFilter Field:=xF, Criteria1:=xCriteria
  8.         Set Rng(1) = .UsedRange.SpecialCells(xlCellTypeVisible)
  9.         If Application.CountA(Rng(1)) = Rng(1).Columns.Count Then  
  10.              .AutoFilterMode = False
  11.             MsgBox IIf(xCriteria <> "<>", "找不到 工單 :" & xCriteria, "完成時間  沒有的資料")
  12.             GoTo e
  13.         End If
  14.         Set Sh = Sheets.Add
  15.         Rng(1).Copy Sh.[a1]
  16.         Sh.UsedRange.Offset(1).Copy Sheet6.Cells(Rows.Count, "A").End(xlUp).Offset(1)
  17.         Sh.Delete
  18.         .AutoFilterMode = False
  19.         .Activate
  20.         For Each xRow In Rng(1).Rows.Cells
  21.             If xRow.Row <> 1 Then
  22.                 If Rng(2) Is Nothing Then
  23.                     Set Rng(2) = xRow
  24.                 Else
  25.                     Set Rng(2) = Union(xRow, Rng(2))
  26.                 End If
  27.             End If
  28.         Next
  29.         Rng(2).Delete xlShiftUp
  30.     End With
  31. e:
  32.     Application.ScreenUpdating = True
  33.     Application.DisplayAlerts = True
  34. End Sub
複製代碼

TOP

回復 7# GBKEE

不好意思可以在請教一個類似的問題嗎
我想將aa sheet記錄到bb sheet
條件是在aa sheet對應的t 欄有出現值的話
就將對應的A到R欄往下3列複製到bb sheet
但是資料還要保留/不要刪除

例如:當T3出現"已排程"時則A3到R5 三列copy到bb sheet中 空格處
但是A3到R5不要刪除
接下來就以此類推可以仿照這樣記錄

謝謝

Book1.rar (21.19 KB)

Tony

TOP

回復 8# tonycho33
    當T3出現"已排程"時則
SHEETS("AA") T欄中都沒有資料啊

TOP

回復 9# GBKEE


    麻煩謝謝

Book1.rar (21.29 KB)

Tony

TOP

        靜思自在 : 知識要用心體會,才能變成自己的智慧。
返回列表 上一主題