【问题标题】:Data Filter SAS VBA数据过滤器 SAS VBA
【发布时间】:2015-11-26 07:57:34
【问题描述】:
data.Filter = "(Dec = 'Okay' AND no = '001' AND date >=" &
Sheets("parameter").range("A1") & ")" & _"or (Dec = 'Okay' AND 
(criteria = 'TOM1' OR criteria = 'TOM2' OR criteria = 'TOM3') AND 
date >=" & Sheets("parameter").range("A1") & ")"

为什么会显示运行时错误?我相信问题从包含“标准”的过滤器开始。我该如何做对?

注意:不再允许添加额外的行,因为最大行数为 24,我已经超过了。

【问题讨论】:

  • SAS标签有原因吗?
  • 此 VBA 已连接到 SAS

标签: excel vba sas


【解决方案1】:

这可能是因为您从Sheets("parameter").range("A1") 传入的日期值。

例如,假设您从 A1 中传入 20JAN2015 的值,您可以尝试以下方式:

data.Filter = "(Dec = 'Okay' AND no = '001' AND date >='" &
Sheets("parameter").range("A1") & "'d)" & "or (Dec = 'Okay' AND 
(criteria = 'TOM1' OR criteria = 'TOM2' OR criteria = 'TOM3') AND 
date >='" & Sheets("parameter").range("A1") & "'d)"

这将给出:

(Dec = 'Okay' AND no = '001' AND date >='20JAN2015'd) or (Dec = 'Okay' AND 
(criteria = 'TOM1' OR criteria = 'TOM2' OR criteria = 'TOM3') AND 
date >='20JAN2015'd)

比较一下:

data _null_ ;
  datetxt='20JAN2015' ;
  datenum='20JAN2015'd ;
  put "Date as text " datetxt= ;
  put "Date as SAS date " datenum= ;
run ;

【讨论】:

  • 实际上,我认为您在"or (Dec = 'Okay' AND 之前有一个不需要的_...
  • 发生的问题,我相信是由于括号内的括号。 AND或OR的语法不能简单地读取括号内的括号
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多