作者dom (gouf)
看板Visual_Basic
标题Re: [VBA ] excel与VBA的问题求救
时间Fri Jul 1 03:29:11 2005
※ 引述《dom (gouf)》之铭言:
: 1.我希望把某工作表的名称设为某储存格的数值,该储存格的资料型式是日期资料,
: 如2000年1月1日。语法大致如下:
: y = CStr(Worksheets(1).Cells(1, 3).Value)
: Worksheets(3).Name = y
: 我知道excel的工作表名称内不能含"/"符号,所以日期储存的格式特别用"2000年
: 1月1日"而非"2000/01/01",但是vba在执行时似乎还是将日期资料视作"2000/01/01"
: 的格式,因此说我语法错误。那我要怎麽样才能把工作表名称命名为某天的日期?
: (手动key in除外)
: 2.要怎麽样才能让vba在执行到一半时先将目前的活页簿存档?因为程式可能要跑
: 很久,外一中途当机,没中途存档的话岂不欲哭无泪?
: 3.我有一些股票交易资料的格式如下:
: 日期 代号
: 2000/01/01 1000
: 2000/01/01 1001
: 2000/01/01 3002
: 2000/01/02 1000
: 2000/01/02 2303
: 2000/01/03 1000
: 2000/01/03 2323
: 2000/01/04 2035
: .
: .
: .
: 我希望自动把每一天的资料放到不同工作表,例如2000/01/01的交易资料放到工作表
: "2000年1月1日"、2000/01/02的交易资料放到工作表"2000年1月2日",以此类推。
: 有没有不用写vba,靠excel内建的功能就可完成的方法?(可能有人会说把资料用日期
: 筛选後再一天一天贴上,问题是我的资料有很很多年,每年有两百多天,一天一天贴
: 会贴到死)。如果要靠vba才能完成,有没有比较简单的写法?
: 4.在vba里面,要把一张工作表某范围的内容,贴到另一张工作表去,有没有比较快的
: 写法?(我知道可以用array加上for loop来达成,可是我想问有没有copy、past之类的
: 指令?)
: 谢谢大大把我的问题看完,能解决小弟的疑惑的话就更感激罗。
第4点我补充一下,如果是要复制贴上固定的范围,我知道可以用以下的语法达成:
Worksheets("Sheet1").Range("A1:D4").Copy _
destination:=Worksheets("Sheet2").Range("E5")
但是我要复制的范围是不固定的,例如说我要复制的是第x列第一格到第y列第5行的
范围,其中x,y均为变数,用vba的语法的话大概像这样:
Worksheets(1).Range("Cells(x,1):Cells(y,5)").Copy _
Destination:=Worksheets(2).Range("E5")
不过上面的语法无法执行,似乎是因为range里面不能以cells当引数,那我该怎麽办?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.203.39.78