返回列表 上一主題 發帖

[發問] 跨工作頁查找某欄位的值

本帖最後由 n7822123 於 2020-3-28 09:19 編輯

回復 1# JT1221


你知道End(xlup)的意思嗎???  End是用來找 "有值" 的儲存格

你"訂單明細 -4月"裡面 46,47,48列本身是沒有值的,

但是程式填完之後,就變成有值了,再用End就會抓到不同列!

不會有人同時用End用法然後又填值,因為你要很清楚現在"程式"已經把值填到哪一格,

依你的邏輯,修改你的寫法如下(請先把 "訂單明細 -4月" G46,G47,G48的公式刪除)


Sub EX1()
Sheets("訂單明細 -4月").Activate
With Sheets("訂單明細 -3月")
  For C = 7 To 31
    Cells(500, C).End(xlUp).Offset(3) = .Cells(500, C).End(xlUp).Offset(-2)
    Cells(500, C).End(xlUp).Offset(1) = .Cells(500, C).End(xlUp).Offset(-1)
    Cells(500, C).End(xlUp).Offset(1) = .Cells(500, C).End(xlUp)
  Next
End With
End Sub



這樣寫程式別人大概也很難懂,因為不會有人邊用End邊填值.......

如果把上面3行程式對調結果會大不同,提供一個比較"正常"的寫法如下



Sub EX2()
'找尋F攔 "庫存=已排生產-客戶訂單" 這列
R3 = ['訂單明細 -3月'!F500].End(xlUp).Row
R4 = ['訂單明細 -4月'!F500].End(xlUp).Row
Sheets("訂單明細 -4月").Activate
With Sheets("訂單明細 -3月")
  For C = 7 To 31
    Cells(R4 + 3, C) = .Cells(R3 + 3, C)
    Cells(R4 + 4, C) = .Cells(R3 + 4, C)
    Cells(R4 + 5, C) = .Cells(R3 + 5, C)
  Next
End With
End Sub
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 4# JT1221

這是簡寫

R3 = ['訂單明細 -3月'!F500].End(xlUp).Row

等同於

R3=sheets("訂單明細 -3月").range("F500").End(xlUp).Row
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

        靜思自在 : 有智慧才能分辨善惡邪正;有謙虛才能建立美滿人生。
返回列表 上一主題