【问题标题】:Excel VBA : If the selected cell is emptyExcel VBA:如果所选单元格为空
【发布时间】:2020-03-28 22:21:58
【问题描述】:

希望你们一切都好。

所以我正在处理 excel 上的宏,目标是复制并粘贴添加的最后一列的 x 单元格,知道每天都会添加一列,直到达到“AX”列。

所以我的想法是检查最后一列(AX)是否为空,如果是,那么我向左移动 3 列,然后再次执行相同的操作,如果它是空的,再次向左移动 3 列,直到找到一个完整的单元格,然后执行复制和粘贴过程。

问题是我不知道如何定义循环以继续进行检查,直到找到一个完整的单元格。

我现在的代码:

Sub Test_FM()
Application.ScreenUpdating = False
x = 0
Sheets("Test FM").Select
Range("AX9").Select
If ActiveCell.Value = "" Then
Range("AX9").Activate
ActiveCell.Offset(rowoffset:=0, columnoffset:=x).Activate
x = x - 3
Range("AX9").Select
ActiveCell.Offset(rowoffset:=x, columnoffset:=0).Activate
ActiveSheet.Rows(ActiveCell.Row).Select
Range("AX9").Select
Range("AX9").Activate
ActiveCell.Offset(rowoffset:=x, columnoffset:=0).Activate
Selection.Copy
Sheets("DR 02").Select
Range("M19").Select
Selection.PasteSpecial

ElseIf 
IsEmpty(ActiveCell) = False Then
Sheets("Test FM").Select
Range("AX9").Select
Range("AX9").Activate
ActiveCell.Offset(rowoffset:=x, columnoffset:=0).Activate
Selection.Copy
Sheets("DR 02").Select
Range("M19").Select
Selection.PasteSpecial
End IF
End Sub

谢谢

【问题讨论】:

    标签: excel loops if-statement


    【解决方案1】:

    只需使用offset

    Sub Test_FM()
    
        Dim wb As Workbook, ws As Worksheet, wsTarget As Worksheet, cell As Range
        Set wb = ThisWorkbook
        Set ws = wb.Sheets("Test FM")
        Set wsTarget = wb.Sheets("DR 02")
    
        Set cell = ws.Range("AX9")
        Do While Len(cell.Value) = 0
            If cell.Column < 4 Then Exit Do
            Set cell = cell.Offset(0, -3) ' move 3 cols to left
        Loop
    
        If Len(cell.Value) = 0 Then
            MsgBox "All columns empty up to " & cell.Address, vbCritical
        Else
            cell.Copy
            wsTarget.Range("M19").PasteSpecial
            MsgBox cell.Address & " copied to M19 on " & wsTarget.Name, vbInformation
        End If
    
    End Sub
    
    

    【讨论】:

    • 嗨 CDP1802 多么了不起的代码。如果可行,我会尝试并更新您。谢谢,感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多