gpt4 book ai didi

vba - 给定行中最后一个非空单元格(列); Excel VBA

转载 作者:行者123 更新时间:2023-12-01 17:37:58 24 4
gpt4 key购买 nike

我有一个 Excel 工作表,需要在其中查找特定行中的最后一个非空单元格

我该怎么做?

下面将为我选择这个,但它会选择第一个非空单元格,我需要第 29 行中的最后一个非空单元格。

工作表(“DTC”).Range(“A29”).End(xlToRight).Select

最佳答案

我对上面的评论进行了扩展,以提供解决方案

  • 不要使用选择
  • 满足第 1 行中正在使用的最后一个单元格
  • 满足整行为空的情况
  • 满足整行已满的需求

第二个代码中的 Find 方法是建立第一个非空白单元格的更直接的方法

这一行Set rng1 = ws.Rows(1).Find("*", ws.[a1], xlValues, , xlByColumns, xlPrevious)说,从工作表“DTCa”的单元格 A1 开始,然后在 row1 中按列向后查找(即从第 1 行的最后一个单元格开始)查找任何内容(*)。此方法要么找到最后一个非空白,要么返回 Nothing ,即空行

使用 xltoLeft 进行特定检查

Sub Method1()
Dim ws As Worksheet
Dim rng1 As Range
Set ws = Sheets("DTCs")
If ws.Cells(1, Columns.Count) = vbNullString Then
Set rng1 = ws.Cells(1, Columns.Count).End(xlToLeft)
If rng1.Column <> 1 Then
'return last used cell
MsgBox "rng1 contains " & rng1.Address(0, 0)
Else
If ws.[a1] = vbNullString Then
MsgBox ws.Name & " row1 is completely empty", vbCritical
Else
'true last used cell is A1
MsgBox "rng1 contains " & rng1.Address(0, 0)
End If
End If
Else
'last cell is non-blank
MsgBox ws.Cells(1, Columns.Count) & " contains a value", vbCritical
End If
End Sub

推荐

Sub Method2()
Dim ws As Worksheet
Dim rng1 As Range
Set ws = Sheets("DTCs")
Set rng1 = ws.Rows(1).Find("*", ws.[a1], xlFormulas, , xlByColumns, xlPrevious)
If Not rng1 Is Nothing Then
MsgBox "rng1 contains " & rng1.Address(0, 0)
Else
MsgBox ws.Name & " row1 is completely empty", vbCritical
End If
End Sub

关于vba - 给定行中最后一个非空单元格(列); Excel VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4872512/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com