Excel 使用Cell.Address定义范围-VBA

Excel 使用Cell.Address定义范围-VBA,excel,vba,range,cell,Excel,Vba,Range,Cell,我试图复制一个大小不同的区域,该区域由数组中第一个和最后一个单元格的值定义 我已经找到了限制范围的Cell.Address,但是当我尝试将它们输入到我的范围(Cell1、Cell2)时,我会出错 我的Cell1由以下人员提供: Cells.Find("ID").Offset(1,0).Address Cells.Find("Description of initiative").offset(1,0).end(xldown).Offset(0,cells.Find("ID").Column-c

我试图复制一个大小不同的区域,该区域由数组中第一个和最后一个单元格的值定义

我已经找到了限制范围的Cell.Address,但是当我尝试将它们输入到我的范围(Cell1、Cell2)时,我会出错

我的Cell1由以下人员提供:

Cells.Find("ID").Offset(1,0).Address
Cells.Find("Description of initiative").offset(1,0).end(xldown).Offset(0,cells.Find("ID").Column-cells.Find("Description of initiative").Column).address
我的第二单元是:

Cells.Find("ID").Offset(1,0).Address
Cells.Find("Description of initiative").offset(1,0).end(xldown).Offset(0,cells.Find("ID").Column-cells.Find("Description of initiative").Column).address
我曾尝试简单地将这些内容剪切粘贴到范围(Cell1、Cell2)中,但我遇到了错误。我尝试创建和定义变量,但没有成功。如果有人能帮我,我会非常感激

谢谢


我感谢您的回复-以下是完整的代码:

Sub Refresh()

Dim wB As Workbook

Application.ScreenUpdating = False
Application.DisplayAlerts = False

For Each Worksheet In Worksheets
    Select Case Worksheet.Name
        Case "Inputs", "Instructions"
        Case "Project Dashboard"
            Range("B29:B1000").ClearContents
        Case Else
            Worksheet.Delete
        End Select
    Next Worksheet

ufProgress.LabelProgress.Width = 0
ufProgress.Show
Dim i As Integer
For i = 10 To 17
    pctdone = (i - 9) / 8
    With ufProgress
        .LabelCaption.Caption = "Processing Dashboard " & i - 9 & " of 8"
        .LabelProgress.Width = pctdone * (.FrameProgress.Width)
    End With
    DoEvents
    Set wB = Workbooks.Open(Range("G" & i), False, True)
        wB.Sheets(Workbooks(ThisWorkbook.Name).Worksheets("Inputs").Range("F" & i).Value).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
        wB.Close False
        With Worksheets(Workbooks(ThisWorkbook.Name).Worksheets("Inputs").Range("F" & i).Value)
            .Tab.ColorIndex = 15
            .Name = Range("C" & i)
            .Cells.UnMerge
            .Range("B31:B" & .Cells(.Rows.Count, "C").End(xlUp).Row).Copy
            End With

        Worksheets("Project Dashboard").Range("B10000").End(xlUp).Offset(1, 0).PasteSpecial xlValues


    If i = 17 Then Unload ufProgress
    Next

Application.DisplayAlerts = True

End Sub
以下是我试图使之成为动态的一行:(并替换为顶部的长单元格公式)

我已经检查了两个Cell.Address公式的结果,它们返回了正确的结果(我相信分别是$B$31和$B$48)。基本上,这些单元格不是静态的,但它们总是位于包含“ID”和“主动性描述”的单元格下方。我试图将ID下面的第一个单元格和initiative描述的最后一个单元格(偏移回ID列)作为要复制的单元格范围

这更有意义吗

我感谢你的帮助


我的基本问题如下:

如何写出单元格值作为范围限制的范围?例如(请注意),假设单元格X100的值为“A1”,单元格Y200的值为“B5”。是否有一种方法可以写入范围(单元格X100值、单元格Y200值)

在这种情况下,我希望以Range(“A1:B5”)结束

我需要范围来查看不同单元格中的值,以确定其起点和终点。这更有意义吗


谢谢大家!

不要试图把每件事都放在一行中,把它分解成几个组成部分。也使调试更容易。使用“查找”时,请始终检查是否确实找到了该内容以避免错误。这有助于显示您的整个代码,描述您遇到的任何错误,并注意哪一行是-查看一些示例数据和预期结果也会很有帮助,因为这可能会使您更容易理解您正在尝试执行的操作。回答最后一个问题:
Range(Range(Range)(Range(“X100”).value)、Range(Range(“Y200”).value))
Range(Range(“X100”).value&“:”和Range(“X100”).value)
不要试图把每件事都放在一行中,而是将其分解为各个组成部分。也使调试更容易。使用“查找”时,请始终检查是否确实找到了该内容以避免错误。这有助于显示您的整个代码,描述您遇到的任何错误,并注意哪一行是-查看一些示例数据和预期结果也会很有帮助,因为这可能会使您更容易理解您试图做的事情。回答最后一个问题:
Range(Range(Range)(Range(“X100”).value)、Range(Range(“Y200”).value))
Range(Range(“X100”).value&“:”&Range(“X100”).value)