+ -
当前位置:首页 → 问答吧 → EXCEL VBA怎么判断区域内有内容的单元格并返回其列号

EXCEL VBA怎么判断区域内有内容的单元格并返回其列号

时间:2011-08-09

来源:互联网

EXCEL VBA怎么判断区域内有内容的单元格并返回其列号
Private Sub CommandButton1_Click()
LastRow = Range("A65536").End(xlUp).Row
If Cells(i - 1, 15).Resize(2, 1).MergeCells Then
  If Not IsEmpty(Cells(i - 1, -2).Resize(1, 16)) Then’请大侠指点其他判断有内容的单元格,其他编法
  D = Not IsEmpty(Cells(i - 1, -2).Resize(1, 16)).Columns‘     请大侠指点如何获取该列列号(此处运行出错)
     For i = 1 To LastRow
     Cells(i - 1, D).Resize(2, 1).Merge
   
    End If
    End If

Next i

End Sub

作者: zhoujiaping1976   发布时间: 2011-08-09

给你一个函数参考。
Public Function ColumnName(myRange As Range) As String
    ColumnName = Left(myRange.Range("A1").Address(True, False), _
        InStr(1, myRange.Range("A1").Address(True, False), "$", 1) - 1)
End Function

作者: qczvba   发布时间: 2011-08-09

Private Sub CommandButton1_Click()
LastRow = Range("A65536").End(xlUp).Row
For i = 1 To LastRow
If Range(Cells(i - 1, 15).Resize(2, 1)).MergeCells Then   '老出错啊?
   D = Range(Cells(i - 1, -2).Resize(1, 16)).Select           '老出错啊?
   E = Selection.Find(What:="*").Columns 不知道能不能这样判断?
    Cells(i - 1, E).Resize(2, 1).Merge
    End If
Next i
End Sub

作者: zhoujiaping1976   发布时间: 2011-08-09

i=1的时候,Cells(i-1,15) 就等于 Cells(0,15)   行数不能为0,所以出错。
For i = 1 To LastRow
改为:For i = 2 To LastRow+1
试试看

作者: 蓝桥玄霜   发布时间: 2011-08-09

Private Sub CommandButton1_Click()
LastRow = Range("A65536").End(xlUp).Row
For i = 4 To LastRow‘改成4了
If IsEmpty(Cells(i, 15)) Then

   Range(Cells(i - 1, 13).Resize(1, 16)).Select’改成13了
   E = Selection.Find(What:="*").Columns
    Cells(i - 1, E).Resize(2, 1).Merge
   
End If
还是出错啊

作者: zhoujiaping1976   发布时间: 2011-08-09

引用:
原帖由 zhoujiaping1976 于 2011-8-9 12:39 发表
Private Sub CommandButton1_Click()
LastRow = Range("A65536").End(xlUp).Row
For i = 4 To LastRow‘改成4了
If IsEmpty(Cells(i, 15)) Then

   Range(Cells(i - 1, 13).Resize(1, 16)).Select’改成13了
...
LastRow = Range("A65536").End(xlUp).Row
是不是,这个LastRow 小于i的初始值?

作者: excelflower   发布时间: 2011-08-09

,Range("A65536").End(xlUp).Row,是最后一行!

作者: zhoujiaping1976   发布时间: 2011-08-09

引用:
原帖由 zhoujiaping1976 于 2011-8-9 12:48 发表
,Range("A65536").End(xlUp).Row,是最后一行!
上附件吧......

作者: excelflower   发布时间: 2011-08-09

谢谢!Q~AF列中有数字的单元格(分布在不同的列)按O列中合并的样式合并!谢谢啦

附件

合并单元格.rar(72.59 KB)

2011-8-9 13:01, 下载次数: 2

作者: zhoujiaping1976   发布时间: 2011-08-09

不熟悉回复您能不能收到啊,所以又发了一次!

作者: zhoujiaping1976   发布时间: 2011-08-09

Cells(i - 1, 13).Resize(1, 16).Select
   E = Selection.Find(What:="*").Columns
    Cells(i - 1, E).Resize(2, 1).Merge
上面的E是文本内容,不是数值。

作者: excelflower   发布时间: 2011-08-09

相关阅读 更多