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