首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >对1个工作簿中的工作表进行排序

对1个工作簿中的工作表进行排序
EN

Stack Overflow用户
提问于 2018-06-14 10:13:21
回答 3查看 39关注 0票数 0

我在网上搜索了一个可以帮助我对工作簿中的工作表进行排序的宏,并对其进行了一些修改(添加了排除工作表)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub SortDataWorksheets()

Dim wsh As Worksheet
For Each wsh In ThisWorkbook.Sheets
    If wsh.Name <> "Dashboard" And wsh.Name <> "rawdata" And wsh.Name <> "template" And wsh.Name <> "macros instructions" And wsh.Name <> "Sheet1" _
    And wsh.Name <> "Sheet2" And wsh.Name <> "inputlist" And wsh.Name <> "ProductList" And wsh.Name <> "NA" Then

    'sort columns A to AL based on data in column B
    wsh.Columns("A:AL").Sort key1:=Range("B3"), order1:=xlAscending, Header:=xlYes
    End If
Next

End Sub

但是,这并不起作用,因为excel将抛出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Run Time error '1004' :
The sort reference is not valid. Make sure that it's within the data you want to sort...

我的数据从第3行开始,前2行是标题。如何排除要排序的前2行?

EN

回答 3

Stack Overflow用户

发布于 2018-06-14 10:29:36

更改自:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wsh.Columns("A:AL").Sort key1:=Range("B3"), order1:=xlAscending, Header:=xlYes

至:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wsh.Columns("A:AL").Sort key1:=wsh.Range("B3"), order1:=xlAscending, Header:=xlYes

因为如果不引用父工作表,VBA会将ActiveSheet或代码所在的工作表作为父工作表。在您的情况下,两者都会返回错误。

票数 1
EN

Stack Overflow用户

发布于 2018-06-14 10:31:07

这对我来说很有效:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub SortDataWorksheets()

    Dim wsh As Worksheet
    Dim LastRow As Long

    For Each wsh In ThisWorkbook.Sheets
        With wsh
            If .Name <> "Dashboard" And .Name <> "rawdata" And .Name <> "template" And _
                .Name <> "macros instructions" And .Name <> "Sheet1" _
                And .Name <> "Sheet2" And .Name <> "inputlist" And _
                .Name <> "ProductList" And .Name <> "NA" Then

                LastRow = .Cells.Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row

                'sort columns A to AL based on data in column B
                .Range("A2:AL" & LastRow).Sort key1:=.Range("B3"), order1:=xlAscending, Header:=xlYes
            End If
        End With
    Next

End Sub

请注意,这里使用的是特定范围而不是列。

票数 0
EN

Stack Overflow用户

发布于 2018-06-14 10:36:45

我发现在忽略工作表时,读取一个Select Case比读取多个IF..AND..THEN更容易。

下面的代码将调整为B列中包含数据的行数。

我仍然不确定哪种排序方法是首选的-单行,或者宏记录器返回什么(类似于下面)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Public Sub SortDataWorksheets()

    Dim wsh As Worksheet
    Dim lLastRow As Long

    For Each wsh In ThisWorkbook.Worksheets
        Select Case wsh.Name
            Case "Dashboard", "rawdata", "template", "macros instructions", _
                 "Sheet1a", "Sheet2a", "inputlist", "ProductList", "NA"

                 'Do nothing

            Case Else

                lLastRow = wsh.Cells(wsh.Rows.Count, 2).End(xlUp).Row

                With wsh.Sort

                    With .SortFields
                        .Clear
                        .Add Key:=Range("B5:B" & lLastRow), _
                             SortOn:=xlSortOnValues, _
                             Order:=xlAscending, _
                             DataOption:=xlSortNormal
                    End With

                    .SetRange Range("A5:C" & lLastRow)
                    .Header = xlNo
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    '.SortMethod = xlPinYin 'Only need if sorting Chinese characters.
                    .Apply

                End With

        End Select
    Next wsh

End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50855026

复制
相关文章
iOS开发之手势识别
  感觉有必要把iOS开发中的手势识别做一个小小的总结。在上一篇iOS开发之自定义表情键盘(组件封装与自动布局)博客中用到了一个轻击手势,就是在轻击TextView时从表情键盘回到系统键盘,在TextView中的手是用storyboard添加的。下面会先给出如何用storyboard给相应的控件添加手势,然后在用纯代码的方式给我们的控件添加手势,手势的用法比较简单。和button的用法类似,也是目标动作回调,话不多说,切入今天的正题。总共有六种手势识别:轻击手势(TapGestureRecognizer),
lizelu
2018/01/11
2.7K0
iOS开发之手势识别
OpenGLES-05 立方体3D变换
开始这篇文章之前,请先了解3D变换的相关知识,下面资料写得很好,请确保已经阅读过有关资料。 1.http://www.cnblogs.com/kesalin/archive/2012/12/06/3D_math.html 2.http://learnopengl-cn.readthedocs.io/zh/latest/01%20Getting%20started/07%20Transformations/ (1.2为3D变换知识)另外推荐下面资料,关于坐标系统的,我觉得最好理解坐标系统的资料,请都阅读
清墨
2018/05/07
1.1K0
OpenGLES-05 立方体3D变换
当不使用会话状态时禁用它
并不是所有的应用程序或页都需要针对于具体用户的会话状态,您应该对任何不需要会话状态的应用程序或页禁用会话状态。
Java架构师必看
2021/03/22
5100
VC 6 编译时一直处于Linking…状态,无响应
我安装上VC后,一编译程序,要么一直处于编译状态,要么处于linking…状态,VC就像死了一样。
全栈程序员站长
2022/07/04
7940
接口需要 SDK 处于 ready 状态后才能调用(附解决办法)
let promise = tim.login({userID: 'your userID', userSig: 'your userSig'});
用户1419762
2020/04/07
14.1K9
接口需要 SDK 处于 ready 状态后才能调用(附解决办法)
删除处于Terminating状态的namespace
可以看到monitoring这个namespace一直处于Terminating状态,一般情况下强删是删不掉的,强删的方法如下:
dogfei
2020/08/19
1.1K0
活动状态检查
通过查询基本视图,确认数据库和实例处于正常运行状态,可以对外提供数据服务。1.1实例状态1.1实例状态SELECT instance_name,status FROM gv$instance;查询返回实例名称、状态,正常状态应为Open。$crsctl status resource –t集群状态select name,open_mode from v$PDBS;PDB状态GDSCTL> config shardSharding状态1.2会话信息1.2会话信息SELECTSESSIONS_CURRENT,
用户8006012
2022/06/23
1.5K0
TienChin 活动管理-活动状态完善
编写一个将超过当前时间的活动状态设置为禁用,在列表查询的时候进行更改一下调用一下方法。
程序员 NEO
2023/10/12
1680
TienChin 活动管理-活动状态完善
Mac关机时处于黑屏状态
PS:不知道大家有没有遇到过mac电脑关机就黑屏,只有一个箭头,还可以滑动箭头,但就是黑屏状态,等个好长时间还是关不了机,因此我查了好多资料,原因是在关机时,mac要先关掉其他软件或者保存进程以备下次开机的时候接着用,我觉得我也没什么装的呀,是什么让它长时间关不了机呢,原来是MySql,我的MySql一直是处于start状态,我把这个关掉以后,再关机就是秒关了,开机后MySql也是自启的,没有其他坏的影响,只要每次关机的时候把这种后台服务的软件关掉就好了,Mac一般也不常关机,每次手动关掉也不费事。小伙伴们
cMusketeer
2018/03/28
1.8K0
Mac关机时处于黑屏状态
二极管处于截止状态时电压为多少_放大电路饱和失真
大家好,又见面了,我是你们的朋友全栈君。 1.截止状态所谓截止,就是三极管在工作时,集电极电流始终为0。此时,集电极与发射极间电压接近电源电压。对于NPN 型硅三极管来说,当U be在0~0.5V 之间时,I b很小,无论I b怎样变化,I c都为0。此时,三极管的内阻(Rce)很大,三极管截止。当在维修过程中,测得U be低于0.5V 或Uce接近电源电压时,就可知道三极管处在截止状态。 当 U be在0.5~0.7V 之间时,U be的微小变化就能引起I b的较大变化,I b随U be基本呈线性变化,从而引起I c的较大变化(I c=βI b)。这时三极管处于放大状态,集电极与发射极间电阻(Rce)随U be可变。当在维修过程中,测得U be在0.5~0.7V 之间时,就可知道三极管处在放大状态。 3.饱和状态
全栈程序员站长
2022/09/30
7530
该硬盘处于脱机状态解决方案
最近在一台电脑上使用U盘时发现连接后不会出现盘符,但设备管理器却能够显示大容量存储设备。起初以为是系统没有分配盘符,进入到磁盘管理发现磁盘处于脱机状态,并且显示:该磁盘处于脱机状态,因为它与另一个联机磁盘发生签名冲突。经过一番研究找到了解决方案,在此记录备查,也希望能够帮到其他人。
reizhi
2022/09/26
4.6K0
该硬盘处于脱机状态解决方案
Windows中磁盘处于脱机状态怎么解决
超融合中的windows虚拟机在新增硬盘之后,查看计算机本地,没有发现磁盘,此时只需要打开控制面板\所有控制面板项\管理工具中的计算机管理,之后再打开存储中的磁盘管理即可看到添加的磁盘。硬盘激活上线
小狐狸说事
2022/11/17
2K0
Windows中磁盘处于脱机状态怎么解决
juc04-验证线程处于临时状态
当一个线程被启动时,并不代表线程就有了执行权。 线程处于临就绪状态并没有执行权,这个时候 main 线程继续往下执行,有可能是别的线程先开始执行。
潇洒
2023/10/20
880
IL3002:当发布为单个文件时,避免调用
将应用发布为单个文件(例如将项目中的 PublishSingleFile 属性设置为 true)时,调用使用 RequiresAssemblyFilesAttribute 属性注释的成员与单文件不兼容。 这些调用可能不兼容,因为使用此属性注释的成员要求程序集文件位于磁盘上,而嵌入单文件应用的程序集已加载到内存中。
呆呆
2022/02/26
4580
Python调用Ant构建时根据构建状态来决定命令行退出状态
使用os.system()调用Ant构建时,不论构建成功还是失败(BUILD SUCCESSFUL/BUILD FAILED),命令行的总是正常退出 要解决问题: 首先想到的是获取ant命令的返回值,根据返回值来决定命令行的退出状态(0或非0,0代表正常退出) 查阅相关资料,得知python调用系统命令的函数有:os.system、os.popen、commands.getstatusoutput/getstatus/getoutput、subprocess.Popen等。
donghui
2019/04/19
1.1K0
【提问帖】GO中调用redis时,当并发量比较大时出现的问题。
GO中调用redis时,实始化一个连接池,做法也是一般的用户: &redis.Pool{ MaxIdle: beego.AppConfig.DefaultInt("redis::maxidle", 1), MaxActive: beego.AppConfig.DefaultInt("redis::maxactive", 10), IdleTimeout: time.Duration(beego.AppConfig.DefaultInt64("redis::idle_tim
李海彬
2018/03/27
2.2K0
【kubernetes系列】master节点部署Pod处于Pending状态
产生问题的原因是master节点部署Pod,导致无法启动; 问题描述: Warning FailedScheduling 40s (x28 over 28m) default-scheduler 0/1 nodes are available: 1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn’t tolerate.
沁溪源
2022/05/06
3.6K1
【kubernetes系列】master节点部署Pod处于Pending状态
android onresume时view,android – 当对话框出现时不调用OnResume[通俗易懂]
An activity can frequently transition in and out of the
全栈程序员站长
2022/08/31
6690
点击加载更多

相似问题

如何将对象列表转换为简单列表,从对象列表中选择单个属性?

11

如何将对象中的属性列表转换为对象列表

10

将对象列表转换为单个列表

25

将对象列表转换为对象属性列表

21

如何将jq返回的JSON数组转换为具有该列表数据的单个属性的对象?

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文