為什麼這篇vba cells值鄉民發文收入到精華區:因為在vba cells值這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者nifa (沒有人)看板Office標題[算表] 如何用VBA抓儲存格的值而非公式結果時間Thu...
軟體: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. 的部分
在網路上跟板內搜尋過
可是效果跟我想要的有些出入
想一併請教是否有可以參考的解決方法呢 ?
--
上PTT純粹是慌亂生活中忙碌時間裡緊張壓力下微不足道的我們唯一偷偷能做到的
忙裡偷閒下的快樂時光用來放鬆慌亂生活中忙碌時間裡緊張壓力下微不足道的我
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.62.220.207
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1425549263.A.E62.html