【问题标题】:VBA Range Empty Sub, how to send user back to fill rangeVBA Range Empty Sub,如何将用户发送回填充范围
【发布时间】:2020-12-31 19:19:51
【问题描述】:
Sub Emptys()

Dim r As Range
Dim totalCells As Integer

'My range To check'
Set r = ActiveSheet.Range("B3:CS71")

'Check for filled cells'
totalCells = r.Count - WorksheetFunction.CountBlank(r)

If totalCells = 0 Then
    MsgBox "Range is empty, go back and enter"

End If

End Sub

如何将用户发送回工作表并从此子项填充范围?它在“打印数据”上,之后的下一个调用将是打印宏。调用命令按钮检查是否为空,弹出 msgbox,然后在打印机宏上调试。

谢谢

【问题讨论】:

  • 他们不是已经在工作表上了吗?您在代码中使用ActiveSheet
  • 您可以使用 Application.Goto ActiveSheet.Range("B3"), Scroll:=True 将它们发送到您设置的范围,将单元格 B3 放在它们的左上角。否则,您可以只使用 SelectActivate 一个单元格,该单元格也会将它们发送到它,但在我看来不如 goto 好。
  • @simon,我将 Application.Goto 放在 MsgBox 行下,但它仍然推动打印宏

标签: vba


【解决方案1】:
Public Sub Emptys(r As Range)
Dim totalCells As Integer, r2 As Range
totalCells = r.Count - WorksheetFunction.CountBlank(r)
If totalCells = 0 Then
    On Error GoTo err
    Set r2 = Application.InputBox("Please Enter valid range or range with data", , , , , , , 8)
    Emptys r2
 End If
err:
    If err.Number = 424 Then Exit Sub
 End Sub
'Calling sub.
Sub calling()
Dim rng As Range
Set rng = Sheets("Your Sheet Name").Range("Your range")
Emptys rng
End Sub

【讨论】:

  • 我没有收到错误,我不知道如何将它放在代码行中
  • 可以分享文件吗?
  • 然后注释掉 On Error GoTO.. 行和 err: 和下面的行并检查错误是什么。
  • 这里是驱动器链接:1drv.ms/x/s!AqwMTlWln5QfyCn9wHHoox3hBsE9?e=Dc6fnu 代码在 BIBS 和主题表上
  • 嘿...用我的代码替换您的模块 1..现在输入框将打开,直到它不包含某些数据...但是您在打印输出部分有错误..根据你的需要。
猜你喜欢
  • 2019-07-12
  • 2019-05-05
  • 2021-06-20
  • 2016-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多