Excel精英培训网

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

[已解决]红色代码是什么意思

[复制链接]
发表于 2013-7-27 20:29 | 显示全部楼层 |阅读模式
本帖最后由 要用就学 于 2013-7-27 20:36 编辑

Sub test()
    Dim n%, i%, j%, arr(), p$, f$
    n = Sheets.Count
    If n > 4 Then
        p = ThisWorkbook.Path & "\" (这一句的意思是P=当前工作簿放在所在的路径,对吗?)
        f = Sheets(n).Name
        
        ReDim arr(1 To n - 4)
        For i = 5 To n
            j = j + 1
            arr(j) = Sheets(i).Name
        Next i
        Sheets(arr).Copy
        Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs p & f
        ActiveWorkbook.Close
    End If
End Sub
最佳答案
2013-7-27 21:32
本帖最后由 爱疯 于 2013-7-27 21:34 编辑
ligh1298 发表于 2013-7-27 20:38
arr()是申明数组
ReDim arr(1 To n - 4)重新申明数组及维度,并能保留以前数据。
p = ThisWorkbook.Path  ...


正如2楼所说。但要补充下:

ReDim arr(1 To n - 4)
这儿,arr是一维数组。是重新申明数组大小(此时也可看作修改维度,因为是一维,一维即最后一维),但不保留之前数据。

ReDim Preserve arr(1 To n - 4)
加了Preserve后,才保留之前数据。

如果是二维或多维,只允许修改最末维的大小。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-7-27 20:38 | 显示全部楼层
arr()是申明数组
ReDim arr(1 To n - 4)重新申明数组及维度,并能保留以前数据。
p = ThisWorkbook.Path & "\"是文档路径,好比C:\我的文档\
Application.DisplayAlerts = False禁止弹出对话框。
我水平有限,只能解释这么多。

点评

第二句后面是错误的.redim的时候数组里面肯定是空的.它不是动态声明,因为没有关键字: Preserve  发表于 2013-7-27 22:04
回复

使用道具 举报

发表于 2013-7-27 21:08 | 显示全部楼层
= ThisWorkbook.Path & "\"  这个应该是当前工作簿所在的路径吧
回复

使用道具 举报

发表于 2013-7-27 21:32 | 显示全部楼层    本楼为最佳答案   
本帖最后由 爱疯 于 2013-7-27 21:34 编辑
ligh1298 发表于 2013-7-27 20:38
arr()是申明数组
ReDim arr(1 To n - 4)重新申明数组及维度,并能保留以前数据。
p = ThisWorkbook.Path  ...


正如2楼所说。但要补充下:

ReDim arr(1 To n - 4)
这儿,arr是一维数组。是重新申明数组大小(此时也可看作修改维度,因为是一维,一维即最后一维),但不保留之前数据。

ReDim Preserve arr(1 To n - 4)
加了Preserve后,才保留之前数据。

如果是二维或多维,只允许修改最末维的大小。
回复

使用道具 举报

 楼主| 发表于 2013-7-28 06:52 | 显示全部楼层
ligh1298 发表于 2013-7-27 20:38
arr()是申明数组
ReDim arr(1 To n - 4)重新申明数组及维度,并能保留以前数据。
p = ThisWorkbook.Path  ...

非常感谢您的解释!
回复

使用道具 举报

 楼主| 发表于 2013-7-28 06:56 | 显示全部楼层
youfang 发表于 2013-7-27 21:08
= ThisWorkbook.Path & "\"  这个应该是当前工作簿所在的路径吧

能抽出您宝贵的时间给我解答疑惑非常感谢!
回复

使用道具 举报

 楼主| 发表于 2013-7-28 07:01 | 显示全部楼层
爱疯 发表于 2013-7-27 21:32
正如2楼所说。但要补充下:

ReDim arr(1 To n - 4)

我的问题已经解决,怎么修改,我不会请教一下。

点评

还有什么问题?  发表于 2013-7-28 07:34
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 16:27 , Processed in 0.398775 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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