vba中excel排序问题

问题描述

PrivateSubCommandButton1_Click()DimMyColAsNewCollectionDimTxtColAsNewCollectionDimMyColAAsNewCollectionDimiAsLongDimmyArr(300)AsStringDimfsoAsObjectDimstrFolderPathAsStringDimobjFolderAsObjectDimobjFileAsObjectDimxlAppAsExcel.ApplicationDimxlBookAsExcel.WorkbookDimMyArray()AsStringDimTxtArray()AsStringDimsheetAsExcel.WorksheetDimiNumAsIntegerDimaNumAsIntegerDimsAsIntegerDimpaAsStringDimpaTAsStringDimcountAsIntegerDimArr(100)AsStringDimtxtAsStringDimcountNumAsIntegerDimtabNameAsStringDimowUerAsStringDimusTblAsStringDimarrayaAsVariantDimabcAsIntegerDimbcdAsStringDimtAsInteger'DimabcAsString'abc="sheet1,sheet2"'arraya=Split(abc,",")'MsgBoxarraya(0)Setfso=CreateObject("Scripting.FileSystemObject")strFolderPath="D:DDL"SetobjFolder=fso.GetFolder(strFolderPath)IfNotobjFolderIsNothingThenForEachobjFileInobjFolder.FilesMyCol.Add(Mid(Left(objFile.Name,Len(objFile.Name)-4),8))MyColA.Add(objFile.Name)NextEndIfSetxlApp=NewExcel.Application'????excel?審fSetxlBook=xlApp.Workbooks.Open("D:EP作業一覧.xls")Setsheet=xlBook.Worksheets(2)sheet.Cells(3,2)="2"'MsgBoxsheet.Cells(3,2)iNum=sheet.[C6553].End(xlUp).RowSetxlBookA=xlApp.Workbooks.Open("D:EPEPテーブル設計.xls")SetsheetA=xlBookA.Worksheets(2)aNum=sheetA.[A6553].End(xlUp).RowReDimPreserveMyArray(iNum)AsStringFors=1ToiNumMyArray(s-1)=sheet.Range("C"&s+1).ValueNextsForm=0ToUBound(MyArray)-1Forj=1ToMyCol.countIfMyArray(m)=UCase(MyCol.Item(j))Then'Forf=jToMyColA.count'Fory=6ToaNumOpen"D:DDL"&MyColA.Item(j)ForInputAs#1DoWhileNotEOF(1)LineInput#1,txt'????????審??弌????泙暘攝?String?検countNum=countNum+1IfcountNum=1ThenowUer=Replace(Mid(txt,6),"]","")EndIfIfcountNum=14ThenusTbl=UCase(Replace(Mid(txt,21),"](",""))EndIfIfcountNum>14Thenabc=InStr(txt,"]")bcd=Mid(txt,3,abc-3)'arraya=Split()Forq=6ToaNumIfsheetA.Cells(q,2).Value=owUerAndsheetA.Cells(q,3).Value=usTblThenForo=3ToxlBookA.Worksheets.count'MsgBoxsheetA.Cells(q,3).Value'MsgBoxxlBookA.Worksheets(o).NameIfsheetA.Cells(q,3).Value=xlBookA.Worksheets(o).NameThenSetsheetC=xlBookA.Worksheets(o)'MsgBoxsheetC.[A6553].End(xlUp).RowForp=7TosheetC.[A6553].End(xlUp).Row'MsgBoxsheetC.Cells(p,3).Value'MsgBoxbcdIfUCase(bcd)=sheetC.Cells(p,3).ValueThent=t+1sheetC.Cells(p,1)=tEndIfNext'Workbooks("EPテーブル設計.xls").Worksheets(sheetC.Name).Activate'Range("A7:P"&sheetC.[A6553].End(xlUp).Row).Select'ActiveWorkbook.Worksheets(sheetC.Name).Sort.SortFields.Clear'ActiveWorkbook.Worksheets(sheetC.Name).Sort.SortFields.AddKey:=Range("A7"),_'SortOn:=xlSortOnValues,Order:=xlAscending,DataOption:=xlSortNormal'WithActiveWorkbook.Worksheets(sheetC.Name).Sort'.SetRangeRange("A7:P"&sheetC.[A6553].End(xlUp).Row)'.Header=xlNo'.MatchCase=False'.Orientation=xlTopToBottom'.SortMethod=xlPinYin'.Apply'EndWithEndIfNextEndIfNextIfTrim(Left(txt,11))="CONSTRAINT"ThenGoToLoopline'EOF()=TrueEndIfEndIfLoopLoopline:'NextcountNum=0'NextEndIfNextjNextmxlBook.Close(True)xlApp.QuitClose#1SetobjFile=NothingSetobjFolder=NothingSetfso=NothingEndSub注释的地方是小弟要排序地方也就是先对excel进行修改然后排序

时间: 2024-08-01 14:15:40

vba中excel排序问题的相关文章

VBA在Excel中的应用(三)

目录 Chart Export Chart Format Chart Lengend Chart Protect Chart Title Chart Chart Export 1.将Excel中的图表导出成gif格式的图片保存到硬盘上 Sub ExportChart() Dim myChart As Chart Set myChart=ActiveChart myChart.Export Filename:="C:\Chart.gif", Filtername:="GIF&q

为excel vba中添加、删除模块并插入全过程图文详解

  为excel vba中添加.删除模块并插入全过程图文详解         方法/步骤 1.点按快速启动栏excel 程序图标 进入excel 界面 点击选中任意单元格 然后按alt+f11 进入vbe界面 2.点击菜单栏 插入命令 在弹出的活动菜单中点按模块命令 3.另一种方式插入模块的方法可以在工程资管管理器中鼠标点击空白处 右键单击鼠标 在弹出的快捷菜单中选择插入命令 二级菜单中选择模块命令 4.如图所示模块1.模块2分别是通过菜单栏插入命令 和工程资源管理器点击右键创建的模块 5.如果

WPS中Excel怎么安装使用宏插件?

  WPS中Excel怎么安装使用宏插件?          1.默认的WPS Excel中的"宏"是灰色关闭状态,我们可以清楚的看到"宏"的功能是没有启用的(而Microsoft office这里默认就是启用的) 2.需要在wps excel中启用"宏"的功能,首先就需要下载一个"wps的vba插件"(点击下载),直接下载即可. 3.下载"wps的vba"之后,就需要安装了,只有安装了此模块,wps的宏功

诸位老师好!VSTO问题,VBA中的代码,如何移植到VS中?多谢!

问题描述 老师您好!我在VBA中的代码如下:FistRow=Evaluate("SMALL(IF("&XhlfxSheet&"!$f$1:$f$200=""序号"",ROW("&XhlfxSheet&"!$b$1:$b$200)),1)"),用来取得单元格区域B1:B200中,第一个值为"序号"的单元格行行号.在VS中提示:未声明"Evaluat

VBA中让长数据不显示为科学计数法

在VBA中做导出到Excel操作时,如果碰到长数字,那么导出后会默认显示为科学计数法,解决方法如下: ExcelWorkSheet.Cells(1, 6) = "'" + 111111111111111 在输出的数字前面加上一个  '   即可.

Office2016中excel/ppt右键菜单闪退该怎么办?

  Office2016中excel/ppt右键菜单闪退该怎么办?             在Windows10系统环境下,安装Office 2016后,随便打开一个Excel或Word文档,在文档中点击右键,弹出功能菜单,还未看清楚菜单就消失了,再点击右键弹出右键菜单也是一闪退,一闪而过.根本不能选择到右键菜单中的选项. 通过查阅网上出现此类问题的现象,不仅仅是Windows10系统环境下Office 2016才会出现这样的问题,在Windows7.Windows8系统下Office 2010

ASP自定义函数,仿VBA中域函数 DLookup

函数 Function dlookup(strFieldName, strTableName, strWhere, objConn)    '参考Access VBA 中的Dlookup函数    '由于环境不同,加了ObjConn参数,直接将Adodb.connection直接调进来    Dim strsql    Dim rs    Set rs = server.CreateObject("adodb.recordset")    '下面要调用外部的一个自定义函数 checks

从 VBA 中使用 Visual Basic .NET 将 Word 文档序列化为 XML

visual|word|xml 从 VBA 中使用 Visual Basic .NET 将 Word 文档序列化为 XML Michael CorningMicrosoft Corporation 2002年10月 适用于:   Microsoft Word 2002   Microsoft Visual Studio .NET 摘要:学习如何在 Microsoft Office Visual Basic for Applications (VBA) 程序中利用 .NET 代码将大型 Word

ASP自定义函数,仿VBA中域函数DLookup

函数 Function dlookup(strFieldName, strTableName, strWhere, objConn) '参考Access VBA 中的Dlookup函数 '由于环境不同,加了ObjConn参数,直接将Adodb.connection直接调进来 Dim strsql Dim rs Set rs = server.CreateObject("adodb.recordset") '下面要调用外部的一个自定义函数 checksql() strFieldName