读书人

Excel 惯用的2个宏(拆分单元格并自动填

发布时间: 2012-08-11 20:50:31 作者: rapoo

Excel 常用的2个宏(拆分单元格并自动填充数据、取满足条件的值连接成字符串)

打开宏:

Excel 惯用的2个宏(拆分单元格并自动填充数据、取满足条件的值连接成字符串)

查看宏

Excel 惯用的2个宏(拆分单元格并自动填充数据、取满足条件的值连接成字符串)

1.拆分单元格并自动填充数据

Sub 拆分填充()'' 拆分填充 宏'' 快捷键: Ctrl+d'Dim x As RangeFor Each x In ActiveSheet.UsedRange.CellsIf x.MergeCells Thenx.Selectx.UnMergeSelection.Value = x.ValueEnd IfNext xEnd Sub

注意:以上代码的有,快捷键: Ctrl+d ,只可应用于当前页面。

例:

Excel 惯用的2个宏(拆分单元格并自动填充数据、取满足条件的值连接成字符串)

Excel 惯用的2个宏(拆分单元格并自动填充数据、取满足条件的值连接成字符串)

2.取满足条件的值连接成字符串

Excel 惯用的2个宏(拆分单元格并自动填充数据、取满足条件的值连接成字符串)

Excel 惯用的2个宏(拆分单元格并自动填充数据、取满足条件的值连接成字符串)

代码:

    Sub 取电表()'注意看你的Excel是否是Sheet1和Sheet2,如果不是请修改一下哦    Dim iRow As Integer    Dim sUserID As String    Dim iCount As Integer    Dim sResult As String      For iRow = 2 To Sheet1.UsedRange.Count    sUserID = Sheet1.UsedRange.Cells(iRow, 2)    '这里的那个2可能是你要修改的地方哦,我这里是在用Sheet1的“原用户编号”(第2列)与Sheet2的“户号”(第6列)比较哦    If sUserID = Empty Then GoTo II    sResult = ddf(sUserID, iRow)        NextII:    ActiveWorkbook.SaveEnd SubFunction ddf(FUserID As String, FRow As Integer)   Dim sResult As String   Dim sAmmeters As String   Dim iRow As Integer   Dim UserID As String   Dim AmmeterCount As Integer      AmmeterCount = 0   For iRow = 2 To Sheet2.UsedRange.Count          sAmmeters = Sheet2.UsedRange.Cells(iRow, 10)        '这里的那个“10”可能是你要修改的地方哦,我这里是在取Sheet2的“出厂编号”(第10列)的值哦              UserID = Sheet2.UsedRange.Cells(iRow, 6)       '这里的那个“6”可能是你要修改的地方哦,我这里是在用Sheet1的“原用户编号”(第2列)与Sheet2的“户号”(第6列)比较哦       If UserID = Empty Then GoTo III              If UserID = FUserID Then       sResult = sResult + sAmmeters + "/"  '连接字符串       AmmeterCount = AmmeterCount + 1      '连接字符串的次数       End If          NextIII:    If (sResult <> Empty) Then    Sheet1.UsedRange.Cells(FRow, 14) = sResult '连接字符串的结果,放到哪个单元格中,“电表”    Sheet1.UsedRange.Cells(FRow, 15) = AmmeterCount '连接字符串的次数,放到哪个单元格中,“电表个数”    End If    End Function

读书人网 >其他相关

热点推荐