楼主: frederic7
13256 1

关于合并单元格的值怎么提取(VBA) [推广有奖]

  • 13关注
  • 3粉丝

已卖:820份资源

副教授

6%

还不是VIP/贵宾

-

威望
0
论坛币
2058 个
通用积分
24.6509
学术水平
8 点
热心指数
18 点
信用等级
4 点
经验
9392 点
帖子
614
精华
0
在线时间
456 小时
注册时间
2009-9-26
最后登录
2025-7-2

楼主
frederic7 发表于 2010-3-27 20:38:39 |AI写论文
2论坛币
有这么一组数据
名称  数量 类别
鸡蛋 10      蛋类
鸭蛋 20      
番茄 10     蔬菜
芹菜  29     
带鱼  23   鱼类


上面的类别空着的是和上面一类的合在一起的,也即类别是合并单元格的形式存在的。

现在想求出某一名称所属的类别,应该怎么表示???

我是这么写的。


Dim MyRng As Range
Dim CellU As Range
Dim Num As Integer
Dim FinalRow As Integer

Num = 0

FinalRow = Worksheets("sheet1").Range("a1").End(xlDown).Row

Set MyRng = Worksheets("sheet2").(Cells(1, 1), Cells(FinalRow, 3))    '200的位置用finalrow代替




For Each CellU In MyRng
    If CellU= '你不知道的一种东西" Then    ‘If CellU.Interior.Color = 65535 Then 这里其实用的是颜色来寻找的。要是有名称的话直接用if函数就可以了
        With Worksheets("sheet2")
        .Range("a1").Offset(Num, 0).Value = Num + 1
        
        .Range("a1").Offset(Num, 1).Value = CellU.Offset(0, 0).Value '名称
        .Range("a1").Offset(Num, 2) = CellU.Offset(0, 1)             '数量
        .Range("a1").Offset(Num, 3) = CellU.Offset(0, 2)   '类别
   
        Num = Num + 1
        
        End With
   
    End If
Next
End Sub


这时就会出现一个问题。

当你要找的那个类别后移两个之后不是出于合并单元格的第一个位置,那么你得到的值将会是空""
因为事实上合并单元格之前,该单元格就是空的单元格。


问:现在该怎么修改程序找出类别。
谢各位大侠赐教。

关键词:VBA 单元格 worksheets worksheet interior VBA 单元
啊哦

沙发
241king 发表于 2014-12-17 15:44:28
[titter][titter]

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 11:11