【问题标题】:Is there a way to use Cells.Address as part of a range ("A1:Cells.Address") for an input to a function?有没有办法将 Cells.Address 用作函数输入的范围(“A1:Cells.Address”)的一部分?
【发布时间】:2021-10-30 14:17:18
【问题描述】:

我似乎无法完成这项工作。我有一行可以找到数据表中最后一个单元格的地址。

r = Range(Range("A2"), Range("A2").End(xlDown)).Rows.Count 
Range("A1", Cells(r + 1, 5).Address(RowAbsolute:=False, ColumnAbsolute:=False)).Select

然后使用此信息,稍后我需要输入 E35 对应的范围 A1:E35:

Cells(r + 1, 5).Address(RowAbsolute:=False, ColumnAbsolute:=False))

使用 Ron de Bruin 的 CopyRangeToJPG 函数,

Function CopyRangeToJPG(NameWorksheet As String, RangeAddress As String) As String
'Ron de Bruin, 25-10-2019
Dim PictureRange As Range

With ActiveWorkbook
    On Error Resume Next
    .Worksheets(NameWorksheet).Activate
    Set PictureRange = .Worksheets(NameWorksheet).Range(RangeAddress)
    
    If PictureRange Is Nothing Then
        MsgBox "Sorry this is not a correct range"
        On Error GoTo 0
        Exit Function
    End If

它没有通过验证检查。 RangeAddress 字段应该是什么?我需要它是动态的,因为在这种情况下它并不总是 A1:E35。我原以为以下方法可能有效,但我想这不是正确的方法。

CopyRangeToJPG("Sheet2", "A1:(Cells(r + 1, 5).Address(RowAbsolute:=False, ColumnAbsolute:=False))").

谢谢

【问题讨论】:

    标签: excel vba automation outlook


    【解决方案1】:
    CopyRangeToJPG("Sheet2", _
                   "A1:" & Cells(r + 1, 5).Address(RowAbsolute:=False, ColumnAbsolute:=False))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-01
      • 1970-01-01
      • 2019-12-01
      • 2020-09-14
      • 2019-05-30
      • 1970-01-01
      • 2012-05-25
      相关资源
      最近更新 更多