自定义序列

晃仙 2019-05-12 10:20:05
总是说worksheet 作用range错误,哪里错了? 代码如下,sheet3有自定义序列,是有顺序百家姓,剩下的工作簿是没有排序的名字,姓加名,未排序 帮我看看哪里错了!求救! Option Explicit Sub demo1() Dim sin As Worksheet, rng As Range, i As Long, myorder As Range Set myorder = Worksheets("sheet3").Range("b3:b18") Application.AddCustomList (myorder) For Each sin In Worksheets If sin.Name <> "Sheet3" Then i = 2 Do While sin.Cells(i, 2).Value <> "" sin.Cells(i, 1).Value = Left(sin.Cells(i, 2), 1) i = i + 1 Loop Set rng = sin.Range(Cells(1, 1), Cells(1, 1).End(xlDown).End(xlToRight)) rng.Sort key1:=Range("A:A"), ordercustom:=Application.CustomListCount + 1 Range("A:A").Clear End If Next Application.DeleteCustomList (Application.CustomListCount + 1) End Sub
...全文
184 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
晃仙 2019-05-15
  • 打赏
  • 举报
回复
已解决啦,谢谢大家,细节没有注意
脆皮大雪糕 2019-05-13
  • 打赏
  • 举报
回复
咋觉得你这操作就是 先把姓名列的姓放到一列新的,然后再vlookup从sheet3里找到相应的序号,最后用序号列进行排序。 操作一遍录制一个宏,然后再稍作修改即可。
milaoshu1020 2019-05-13
  • 打赏
  • 举报
回复
Set rng = sin.Range(Cells(1, 1), Cells(1, 1).End(xlDown).End(xlToRight))
这行改成:
Set rng = sin.Range(sin.Cells(1, 1), sin.Cells(1, 1).End(xlDown).End(xlToRight))
试试?

2,461

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧