Re: [算表] 如何用VBA抓儲存格的值而非公式結果

作者: nifa (沒有人)   2015-03-08 12:22:54
※ 引述《nifa (沒有人)》之銘言:
: 標題: [算表] 如何用VBA抓儲存格的值而非公式結果
: 時間: Thu Mar 5 17:54:19 2015
:
: 軟體:Excel
:
: 版本:2010
:
: 因為公司需求
:
: 1.
: 想把業務的出貨列表以當天為準
: 往後一星期的值抓出來列印
:
: 2.
: 之後會再把各業務的一星期內的表(一個業務一個檔案)
: 整合到一個工作表內並排序
:
: =========================
:
: 目前是先做第一步的部分
:
: 我是用VBA按鈕去寫
: 按下去後會用篩選的方式先列出一星期內的內容
: 然後再逐筆 copy 到另一個工作表
: 之後取消篩選,內容如下
:
: Private Sub testsend_Click()
:
: Dim Sht As Worksheet
: Dim rng As Range
: Dim a As Integer
:
: With Sheets("排程表") '在Orders工作表中
:
: Set rng = .UsedRange '所有資料範圍
: rng.AutoFilter Field:=2, Criteria1:=Array("15.02.09", _
: "15.02.10", _
: "15.02.11", _
: "15.02.12", _
: "15.02.13", _
: "15.02.14", _
: "15.02.15"), _
: Operator:=xlFilterValues '篩選出日期
:
: Set Sht = Sheets("一週交期")
: a = Sht.Range("a1048576").End(xlUp).Row '定位最後一列非空白列的值
:
: For i = 2 To Sheets("排程表").Range("b1048576").End(xlUp).Row '依列數跑迴圈
: If Range("B" & i) <> "" Then
: a = a + 1 '每次都重新定位最後一列空白列的值
: For j = 1 To Sheets("排程表").Range("a1").End(xlToRight).Column '依欄數跑迴圈
: Set rng = Sht.Cells(a, j)
: rng = Sheets("排程表").Cells(i, j) '若不為寄送格則複製原內容
: Next
: End If
: Next
:
: AutoFilterMode = False
:
: End With
:
: End Sub
:
: 這部分寫來測試的是沒有問題,但是因為目前的 array 內用的是固定值
: 而我需求的是希望用 today(),today()+1,today()+2 這樣去做
: 目前我是用取巧的方式,另外開一個 sheet
: a1 - a7 填上 today(),today()+1...這樣
: 然後用格式化條件變成 15.02.09 , 15.02.10 , 15.02.11 的格式
:
: 但是當用 VBA 抓儲存格的值
:
: sheets"日期參數用".cells(1,1)
:
: 來對照時
: 抓出來的值會是 2015/2/9 這樣而非 15.02.09
:
: 可是我們公司日期輸入方式又偏偏是非制式的 yy.mm.dd
: 而非 yy/mm/dd,這樣一來如果要拿抓出來的值當篩選條件
: 會是 2015/2/9 這樣,無法使用
:
: 所以想請問是否有方法可以抓取儲存格"顯示出來的字"
: 而非是抓取公式運算的值呢 ?
:
: 另外 2. 的部分
: 在網路上跟板內搜尋過
: 可是效果跟我想要的有些出入
: 想一併請教是否有可以參考的解決方法呢 ?
:
:
:
作者: EGsux (天龍人)   2015-03-09 13:24:00
criteria 那邊不能換成 day()嘛?這樣以後要排更多日期也不用改
作者: nifa (沒有人)   2015-03-09 18:21:00
因為之前試其他方式有問題,後來用 array 才 okEG 大說的用 day() 以後不用修改的意思是 ? 篩選還不太熟
作者: soyoso (我是耀宗)   2015-03-09 21:44:00
應可用advancedfilter http://goo.gl/rQhMyk
作者: EGsux (天龍人)   2015-03-10 03:33:00
手邊沒電腦測試 可以寫成criteria1:=day() ?

Links booklink

Contact Us: admin [ a t ] ucptt.com