excel常用宏
- 格式:doc
- 大小:735.00 KB
- 文档页数:18
1.拆分单元格赋值Sub 拆分填充()Dim x As RangeFor Each x InIf Then=End IfNext xEnd Sub2.E xcel 宏按列拆分多个excelSub Macro1()Dim wb As Workbook, arr, rng As Range, d As Object, k, t, sh As Worksheet, i& Set rng = Range("A1:f1")= False= Falsearr = Range("a1:a" & Range("b" &Set d = CreateObject("")For i = 2 To UBound(arr)If Not (arr(i, 1)) ThenSet d(arr(i, 1)) = Cells(i, 1).Resize(1, 13)ElseSet d(arr(i, 1)) = Union(d(arr(i, 1)), Cells(i, 1).Resize(1, 13)) End IfNextk =t =For i = 0 To - 1Set wb = (xlWBATWorksheet)With (1).[A1]t(i).Copy .[A2]End WithFilename:= & "\" & k(i) & ".xlsx"Next= True= TrueMsgBox "完毕"End Sub3.E xcel 宏按列拆分多个sheet在一个工作表中是许多的公司订单记录,如何将它按公司名分拆成一个个工作表,用VBA 实现相当便捷。
以下是演试:原始工作簿:运行VBA代码后的工作簿:代码如下:1.需要先把数据按照分拆的那一列字段排序2.如果你想应用在你的表格中,只需将所有resize(1,3)中的3修改,改成你的表格的列数。
如果你总表有8列就改成resize(1,8)即可3.如果你想根据表格的第一列拆分,需要把(i, 2) <> (i - 1, 2)和= (i, 2)的2换成1Sub s()= FalseDim sh As Worksheet, i As IntegerFor i = 2 To Sheet1.[a65536].End(3).RowIf (i, 2) <> (i - 1, 2) Thenafter:=WorksheetsSet sh = ActiveSheet= (i, 2)("a1").Resize(1, 3).Value = ("a1").Resize(1, 3).Value("a65536").End(3).Offset(1, 0).Resize(1, 3).Value = (i, 1).Resize(1, 3).Value Else("a65536").End(3).Offset(1, 0).Resize(1, 3).Value = (i, 1).Resize(1, 3).Value End IfNext i= TrueEnd Sub宏多工作表合并Function LastRow(sh As Worksheet)On Error Resume NextLastRow = "*", _After:=("A1"), _Lookat:=xlPart, _LookIn:=xlFormulas, _SearchOrder:=xlByRows, _SearchDirection:=xlPrevious, _MatchCase:=False).Row On Error GoTo 0End FunctionSub s()Dim sh As WorksheetDim DestSh As WorksheetDim Last As LongDim shLast As LongDim CopyRng As RangeDim StartRow As Long= False= False'新建一个“汇总”工作表= FalseOn Error Resume Next("汇总").DeleteOn Error GoTo 0= TrueSet DestSh = = "汇总"'开始复制的行号,忽略表头,无表头请设置成1StartRow = 2For Each sh InIf <> ThenLast = LastRow(DestSh)shLast = LastRow(sh)If shLast > 0 And shLast >= StartRow ThenSet CopyRng = (StartRow), (shLast))If Last + > ThenMsgBox "内容太多放不下啦!"GoTo ExitSubEnd IfWith (Last + 1, "A").PasteSpecial xlPasteValues.PasteSpecial xlPasteFormats= FalseEnd WithEnd IfEnd IfNextExitSub:(1)= True= TrueEnd Sub5.多个sheet拆成多个excelSub Macro1()Dim sht As Worksheet= False= FalseFor Each sht In SheetsFilename:= & "\" & & ".xlsx"Next= True= TrueEnd Sub或者Private Sub 分拆工作表()Dim sht As WorksheetDim MyBook As WorkbookSet MyBook = ActiveWorkbookFor Each sht InFilename:= & "\" & , FileFormat:=xlNormal '将工作簿另存为EXCEL默认格式NextMsgBox "文件已经被分拆完毕!"End Sub6.利用txt提取文件夹中的所有文件名称1、在那个文件夹内新建一个.TXT文件(如),用记事本单开输入dir> 保存退出将刚才的.TXT()更名为.bat文件()双击文件运行一次,在文件夹内多出一个文件打开文件,将其中的内容粘贴到Excel中,数据——分列处理就可以得到你要的文件名列表了!7.一列拆成两列Excel电子表格的功能非常强大,无论是拆分还是合并单元格都可以轻松完成。
有时候我们编辑数据的时候将“名称”和“价格”全部放到了一个单元格中了,有什么方法可以快速将这些数据拆分开呢下面Word联盟以具体实例来为大家详细介绍操作方法。
Excel表格中的数据拆分案例说明:水果名称与水果价格全部在一个单元格中,只是用“空格”分隔开。
我们将这些以空格分隔开的数据分别拆分到两个单元格中。
①首先,我们在Excel表格中选中需要拆分的列;②然后,单击菜单栏的“数据”,在下拉列表中选择“分列”命令;③此时,需要3个步骤来完成数据在表格中的拆分,“文本分列向导- 3 步骤之1”,我们只需选择默认的“分割符号”再单击下面的“下一步”按钮;④然后,继续在“文本分列向导- 3 步骤之2”下面的“分隔符号”中勾选“Tab 键”、“空格”和“连续分隔符号视为单个处理”。
(现在我们可以在“数据预览”中看到拆分的效果)最后单击“下一步”;⑤最后一个步骤,我们单击“完成”就可以了。
拆分好的表格效果如下图所示:提示:以上的表格数据拆分工作必须要有一定的规律才可以实现,比如文字与数字之间有空格或者逗号、分号等其他任何符号或有规律的字符都可以完成拆分工作。
如果中间没空格或者有规律的字符,那么这项拆分数据表格的工作就无法实现了。
8.根据颜色不同做IF判断如果有很多种颜色,可以插入一列公式=颜色,将颜色值求出在取值列用公式=IF(颜色=6,1050,IF(颜色=0,L2)),如果有多种颜色,就再加多层IF9.一个工作薄中有许多工作表如何快速整理出一个目录工作表1、用宏取出各工作表的名称,方法:Ctrl+F3出现自定义名称对话框,取名为X,在“引用位置”框中输入:=MID(1),FIND("]",(1))+1,100)确定2、用HYPERLINK函数批量插入连接,方法:在目录工作表(一般为第一个sheet)的A2单元格输入公式:=HYPERLINK("#'"&INDEX(X,ROW())&"'!A1",INDEX(X,ROW()))将公式向下填充,直到出错为止,目录就生成了。
10.常用公式计算有值的单元格的平均值=AVERAGEIF(C8:T8,"<>0")子列排序=IF(A2=A1,C1+1,1)数字转字母=CHAR(A57+64)字母转数字=CODE(B58)-64截取=MID(B5,3,99)分类=IF(A2=A1,B1,B1+1)查找=VLOOKUP(C:C,'大中型建筑业打分卡问题清单'!B:D,3,0)数数=COUNTIF(I:I,"√")A列相同的F列值和=SUMIF(A:A,A2,F:F)倒序=INDEX($A$1:$A$119,ROWS($A$1:$A$119)-ROWS($A$1:A1)+1)两个相同再取值=VLOOKUP(A2&$B$1,Sheet4!$B:$J,9,0)改名=CHOOSE(MATCH(,0/FIND({"1A","1B","2A","2B","3A","3B","4A","4B","5A","5B","6A","6B","7A"," 7B","8A","8B"},N358),),"是","是","是","是","是","是","是","是","是","是","是","是","是","是","是","是")改日期格式:=TEXT(A4,"yyyy/m/dd")=TEXT(B4,"HH:MM")双重条件统计个数=SUMPRODUCT(($B$3:$AK$3=AM$3)*($B4:$AK4="√"))=COUNTIFS($B$3:$AK$3,AM$3,$B4:$AK4,"√")1、查找重复内容公式:=IF(COUNTIF(A:A,A2)>1,"重复","")。