注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Oh! I see you!

Hi! ppmm~~

 
 
 

日志

 
 

Excel查找同列(行)最近空单元格之前(后)的单元格  

2011-08-13 00:08:47|  分类: Excel |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

本文链接:http://oicu.cc.blog.163.com/blog/static/1230394712011713044078/

问题描述:

原来的数据为一列(可以看作是多列合并到一起),中间有空单元格分割(字母前的单元格),比如:

A
1

D
2
3
4

B
2
5
6
1
2

F
1
7

现在在Sheet2里,有一列:

3
2
5
6
7
4
1

要根据这个数值去查找对应的“列名”标题,结果如下:

3    D  
2    D    B    B
5    B  
6    B  
7    F  
4    D  
1    A    B    F


解决方法:

法一:把一列用set赋给一个数组,然后把数组分段再处理……join/trim/split
法二:Find查找法,当然不能使用简单的Select录制,要处理一下。

预备知识:

Range("A65536").End(xlUp)
从单元格A65536向上遍历查找第一个有内容的单元格。

Range("A65536").End(xlUp).Row
从单元格A65536向上查找第一个有内容的单元格的行号,
Excel2003里可以变通统计A列连续非空单元格个数。

xlUp
xlDown
xlToLeft
xlToRight

相当于在 Excel 里用快捷键:
Ctrl+↑↓←→ 查找同列/行最近空单元格之前/后的单元格

 

'   by oicu#lsxk.org
'   2011/8/12

Sub main()

    Dim iRows As Long
    Dim iValue As String
    Dim iCount As Long
    Dim iActiveCell As Range
    Dim i As Integer
    Dim j As Integer
    Dim ref As Boolean
   
    iRows = Sheet2.[A65536].End(xlUp).Row
    ref = Worksheets("Sheet2").Range("B:Z").ClearContents
   
    For i = 1 To iRows
   
        iValue = Worksheets(2).Cells(i, 1).Value2
        iCount = Excel.WorksheetFunction.CountIf(Worksheets("Sheet1"). _
          Range("A:A"), iValue)
       
        If iCount > 0 Then
            Set iActiveCell = Sheet1.Cells.Find(What:=iValue, After:= _
              Worksheets("Sheet1").Range("A1"), LookIn:=xlValues, _
              LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:= _
              xlNext, MatchCase:=False, SearchFormat:=False)
             
            Sheet2.Cells(i, 2) = iActiveCell.End(xlUp).Value2
        End If
       
        If iCount > 1 Then
            For j = 3 To iCount + 1
                Set iActiveCell = Sheet1.Cells.FindNext(After:=iActiveCell)
                Sheet2.Cells(i, j) = iActiveCell.End(xlUp).Value2
            Next j
        End If
    Next i
End Sub

 

 

  评论这张
 
阅读(1331)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018