返回列表 上一主題 發帖

如何可以讓不是"JPM"不顯示出來,也不會留一行空格?

如何可以讓不是"JPM"不顯示出來,也不會留一行空格?

Book1.rar (10.67 KB)
Sub JPM()
   Dim i As Integer, j As Integer, k As Integer, l As Integer
   Dim rowC As Integer
   Dim rB As Range
   Dim data() As String
   Dim found As Boolean

   '先將 AK:AR 的資料清除
   Worksheets("jpm").[A2:O65536].ClearContents

   '計算多少筆資料要處理
   rowC = Sheets(1).Range("A1").CurrentRegion.Rows.Count
   '先暫存資料,加速處理
   Set rB = Sheets(1).Range(Cells(1, 1), Cells(rowC, 32))
   ReDim data(rowC, 32)

   k = 0
   For i = 1 To rowC '處理資料
       j = 1
       found = False
       While (j <= k) And (found = False) '比對有沒有出現過
          If rB(i, 19) = data(j, 19) And rB(i, 20) = data(j, 20) And rB(i, 3) = data(j, 3) Then
             found = True
             data(j, 3) = rB(i, 3)
             data(j, 4) = rB(i, 4)
             data(j, 6) = rB(i, 6)
             data(j, 19) = rB(i, 19) + "、" + rB(i, 19)
             data(j, 20) = rB(i, 20) + "、" + rB(i, 20)
             data(j, 21) = data(j, 21) + "、" + rB(i, 21)
             data(j, 22) = data(j, 22) + "、" + rB(i, 22)
             data(j, 23) = data(j, 23) + "、" + rB(i, 23)
             data(j, 24) = data(j, 24) + "、" + rB(i, 24)
             data(j, 25) = data(j, 25) + "、" + rB(i, 25)
             data(j, 26) = data(j, 26) + "、" + rB(i, 26)
             data(j, 27) = rB(i, 27)
             data(j, 28) = rB(i, 28)
             data(j, 29) = rB(i, 29)
             data(j, 30) = rB(i, 30)
             data(j, 31) = rB(i, 31)
             data(j, 32) = rB(i, 32)
        End If
          j = j + 1
       Wend

       If found = False Then  '沒有出現過加入新資料
          k = k + 1
          data(k, 3) = rB(i, 3)
          data(k, 4) = rB(i, 4)
          data(k, 6) = rB(i, 6)
          data(k, 19) = rB(i, 19)
          data(k, 20) = rB(i, 20)
          data(k, 21) = rB(i, 21)
          data(k, 22) = rB(i, 22)
          data(k, 23) = rB(i, 23)
          data(k, 24) = rB(i, 24)
          data(k, 25) = rB(i, 25)
          data(k, 26) = rB(i, 26)
          data(k, 27) = rB(i, 27)
          data(k, 28) = rB(i, 28)
          data(k, 29) = rB(i, 29)
          data(k, 30) = rB(i, 30)
          data(k, 31) = rB(i, 31)
          data(k, 32) = rB(i, 32)
     End If
   Next i

       l = 1
   For i = 1 To k '列印資料
      
       If Range("B" & i + 1).Value = "JPM" Then
      
       Sheets("JPM").Cells(l, 1) = data(i, 19)
       Sheets("JPM").Cells(l, 2) = data(i, 20)
       Sheets("JPM").Cells(l, 3) = data(i, 3)
       Sheets("JPM").Cells(l, 4) = data(i, 27)
       Sheets("JPM").Cells(l, 5) = data(i, 4)
       Sheets("JPM").Cells(l, 6) = data(i, 28)
       Sheets("JPM").Cells(l, 7) = data(i, 29)
       Sheets("JPM").Cells(l, 8) = data(i, 30)
       Sheets("JPM").Cells(l, 9) = data(i, 31)
       Sheets("JPM").Cells(l, 10) = data(i, 32)
       Sheets("JPM").Cells(l, 11) = data(i, 6)
       Sheets("JPM").Cells(l, 12) = data(i, 21) + "、" + data(i, 22) + "、" + data(i, 23)
       Sheets("JPM").Cells(l, 13) = data(i, 24)
       Sheets("JPM").Cells(l, 14) = data(i, 25)
       Sheets("JPM").Cells(l, 15) = data(i, 26)
       End If
       l = l + 1
      Next i

MsgBox ("Sucess")

End Sub

如何可以讓不是"JPM"不顯示出來,也不會留一行空格?

回復 2# Hsieh

vba 沒有辦法讓它不出現嗎?

TOP

回復 4# Hsieh


    04.Set Rng = .Range("B:B").SpecialCells(xlCellTypeFormulas, 16) 出現error, 將我DATA BASE的 JPM轉成1/0,但在jpm worksheet內就沒有copy 資料過去!

另外JPM  worksheet的資料是順序將DATA BASE的 JPM資料抄過來,但擺位是不一樣

DATA BASE (SHEET1)
欄數由A :Z
ITEM NO / STATE / SO / BUYER / AGENT / ETA /RECEIVE DATE/ RECEIVE TRACKING NO/ RECEIVE OBL/RECEIVE OHC/RECEIVE OTHER DOCS/RECEIVE REMARK/SEND DATE/SEND TRACKING NO/ SEND OBL/SEND OHC/SEND OTHER DOCS/SEND REMARK/ JPM DATE/JPM REF NO/JPM OBL/JPM OHC/ JPM OTHER DOCS/JPM REMARK/JPM US ARRANGE PAYMENT ON/JPM HK PICK UP ON

JPM WORKSHEET (JPM)只顯示這些資料
欄數由A : G
JPM DATE / JPM REF NO / SO/JPM DOCS LIST(JPM OBL, JPM OHC, JPM OTHER DOCS 合併)/JPM REMARK/JPM US ARRANGE PAYMENT ON/JPM HK PICK UP ON

TOP

回復 5# c_c_lai


    這個程式沒有反映,是否還欠缺一些資料?

TOP

回復 8# Hsieh


result.rar (486.07 KB)

還是沒有顯示出來. JPM WORKSHEET空白一片~
另外想問
Sub sample()

Dim LastRec As Integer
Dim j As Integer
Dim i As Integer
Dim l As Integer
Dim data() As Range
l = 1

Worksheets("Sheet1").Range("A1").Select
ActiveCell.End(xlDown).Select
     LastRec = ActiveCell.Row
     

For j = 1 To LastRec

i = Application.Match(Sheet1.Cells(1, j), "C:\user\destop\[outstanding payment]Sheet2'!.Range("A:A"), 0) 我想讀取桌面另外一個excel的資料,這句是不是有問題?

If Sheet1.Cells(i, 2).Value <> Sheet2.Cells(i, 2).Value Then

Sheet1.Cells(i, 2).Value = Sheet2.Cells(i, 2).Value
Sheet1.Cells(i, 2).Interior.Color = RGB(255, 200, 255)
End If

Next j

End Sub

TOP

回復 10# Hsieh

結果.rar (198.35 KB)

可以將JPM 資料複製過去了,謝謝!
但是有沒有方法改變它們的位置,因為我不是要全部搬過去,和我想它們在A:F順序抄過去。
   
DATE        TRACKING NO        SO NO        MM        BUYER        PLANT        BOXES        CONTAINER NO        ORIGIN        ETD        ETA        DOCS LIST        REMARK        US ARRANGE PAYMENT ON        HK PICK UP ON

TOP

回復 10# Hsieh


    未命名.rar (118.82 KB)
還是有錯誤

TOP

回復 10# Hsieh


    Sub sample()

Dim LastRec As Integer
Dim j As Integer
Dim i As Integer
Dim l As Integer
Dim data() As Range
l = 1
fs = "C:\Documents and Settings\USER\桌面\HK ETA update.xlsx"          這句出現error 執行階段錯誤'13'型態不符合!
Set wb = Workbooks.Open(fs)

Workbooks("outstanding payments").Worksheets("2012").Range("A1").Select 這
ActiveCell.End(xlDown).Select
     LastRec = ActiveCell.Row
     


For j = 1 To LastRec

i = Application.Match(Worksheets("2012").Cells(j, 1), wb.Sheets("香港&海防單").Range("A:A"), 0)


If Worksheets("2012").Cells(i, 4).Value <> wb.Sheets("香港&海防單").Cells(i, 12).Value Then

Worksheets("2012").Cells(i, 4).Value = wb.Sheets("香港&海防單").Cells(i, 2).Value
Worksheets("2012").Cells(i, 4).Interior.Color = RGB(255, 200, 255)
End If

Next j

wb.Close 0

End Sub

TOP

回復 13# Hsieh


    可以了!謝謝!
11/11/2012
12/11/2012
13/11/2012
15/11/2012
15/11/2012
18/11/2012
19/11/2012
11/11/2012
11/11/2012
11/11/2012

11/11/2012
11/12/2012
13/11/2012
15/11/2012
15/11/2012
18/11/2012
19/11/2012
11/11/2012
11/11/2012
11/11/2012
但是我想問,為何第二個的日期會變成11/12/2012?是哪裡出現問題?是不是因為我設定輸入時在日期前加'才這樣?但也只有一個出錯,不是全部出錯!
是不是資料庫內沒有JPM的資料就會出現問題?那是不是可以加句,如果沒有JPM的資料就不執行這個程式,那樣就沒事了?

TOP

回復  Hsieh


    可以了!謝謝!
11/11/2012
12/11/2012
13/11/2012
15/11/2012
15/11/2012
18 ...
198188 發表於 2012-11-13 21:07



   
另外我想再問一樣!
RECEIVE
SEND
各有資料,但可否兩個STATE自我檢查,例如:
RECEIVE有以下資料
207626 / XIANG / CHEONG / 23-OCT-12 / 15/11/2012 / DHL200 / OBL /            /             /PM
207626 / XIANG / CHEONG / 23-OCT-12 / 18/11/2012 / DHL201 /        / OHC  /            /AM
207626 / XIANG / CHEONG / 23-OCT-12 / 19/11/2012 / DHL202/       /            /    CO  /AM
                       
SEND 有以下資料
207626 / XIANG / CHEONG / 23-OCT-12 / 19/11/2012 / SF111 /        / OHC  /       /AM


然後電腦會自動記算還有哪些在手上還沒寄出!

207626 / XIANG / CHEONG / 23-OCT-12 / 15/11/2012,19/11/2012  / DHL200,DHL202 / OBL,CO  /  PM,AM

TOP

        靜思自在 : 不怕事多,只怕多事。
返回列表 上一主題