Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1836|回复: 9

[已解决]小妹问个简单问题:array函数中参数为变量,在线等!

[复制链接]
发表于 2013-9-21 09:49 | 显示全部楼层 |阅读模式
VBA中有句代码是这样的 array("2013-01-01","2013-01-02","2013-01-03",.......)

我想把2013-01-01,2013-01-02,2013-01-03........放在A1:A100单元格中,

那么上句中的代码该如何写?

最佳答案
2013-9-21 12:44
  1. arr = Application.Transpose([a1:a100])
  2. brr = Application.Transpose([b1:b100])
复制代码
发表于 2013-9-21 09:54 | 显示全部楼层
      Sub rext()
      Dim arr
       arr = array("2013-01-01","2013-01-02","2013-01-03",.......)
       Range("a1").Resize(100) = Application.Transpose(arr)
   
      End Sub
回复

使用道具 举报

发表于 2013-9-21 09:54 | 显示全部楼层
arr=range("a1:a100").value

会错题意了,2楼答案是对的。

回复

使用道具 举报

 楼主| 发表于 2013-9-21 10:20 | 显示全部楼层
本帖最后由 ranrise 于 2013-9-21 10:27 编辑

以上两位的代码都不行啊,可能是我表达不太清楚,我贴上全部代码:
Function WORKDAYS(Firstday, Lastday)
    arr = Array("2013-1-1", "2013-1-2", "2013-1-3") '法定节假日在此指定
    brr = Array("2013-1-4", "2013-1-5") '调休日在此指定(指周六、周日因调休而成工作日)
    For h = LBound(arr) To UBound(arr)
       arrw = arrw & ":" & Format(arr(h), "yyyymmdd")
    Next h
    For h = LBound(brr) To UBound(brr)
      Brrw = Brrw & ":" & Format(brr(h), "yyyymmdd")
    Next h
Myweekday = Empty
For h = CDbl(Firstday) To CDbl(Lastday) + 0.01
  W = Weekday(h, 2)
  If W >= 1 And W <= 5 Then
    p = Format(h, "yyyymmdd")
    If InStr(arrw, p) = Empty Then
     Myweekday = Myweekday + 1
    End If
  Else
    p = Format(h, "yyyymmdd")
    If InStr(Brrw, p) <> Empty Then
    Myweekday = Myweekday + 1
    End If
  End If
Next h
WORKDAYS = Myweekday
End Function

QQ图片20130921101506.jpg

也就是说我不想代码中来写”2013-1-1", "2013-1-2"--------这么多的日期值,我是想把这些日期放在工作表的
单元格中,在代码中只是简单引用一下(比如像A1:A100这类的多简单!)。
回复

使用道具 举报

 楼主| 发表于 2013-9-21 10:31 | 显示全部楼层
再说明白点吧: 假如我这个函数是写用户用的。  那些日期可能是会变化的,我不可能把代码给用户改,如果那些日期是放在工作表的单元格中,而不是放在代码中,用户就可以修改那些日期了。
回复

使用道具 举报

发表于 2013-9-21 10:37 | 显示全部楼层
ranrise 发表于 2013-9-21 10:31
再说明白点吧: 假如我这个函数是写用户用的。  那些日期可能是会变化的,我不可能把代码给用户改,如果那些 ...

把可以放在单元格中的数据提放到数组中 可以不
回复

使用道具 举报

 楼主| 发表于 2013-9-21 10:43 | 显示全部楼层
我心飞翔410 发表于 2013-9-21 10:37
把可以放在单元格中的数据提放到数组中 可以不

不是很明白大侠的意思,我的意思是那些日期放在单元格中让用户去填。
在代码中去引用那些日期。而不是在代码中直接写“2013-1-1”这样的日期。
也就是ARRAY的参数由常量变为变量。

点评

把填好的日期放到二维数组中去 这样可以不  发表于 2013-9-21 10:46
回复

使用道具 举报

 楼主| 发表于 2013-9-21 10:49 | 显示全部楼层
ranrise 发表于 2013-9-21 10:43
不是很明白大侠的意思,我的意思是那些日期放在单元格中让用户去填。
在代码中去引用那些日期。而不是在 ...

应该可以,还请大侠给出代码
回复

使用道具 举报

发表于 2013-9-21 12:44 | 显示全部楼层    本楼为最佳答案   
  1. arr = Application.Transpose([a1:a100])
  2. brr = Application.Transpose([b1:b100])
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-9-21 14:33 | 显示全部楼层
大灰狼1976 发表于 2013-9-21 12:44

谢谢大侠,我要的就是这个效果啊,既简单又能达到目的。
真正的高手啊!
感激不尽!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 04:08 , Processed in 0.177699 second(s), 16 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表