【问题标题】:How to specify a range of cells如何指定单元格范围
【发布时间】:2016-05-31 17:57:26
【问题描述】:

我正在尝试将具有多个工作表的多个工作簿中的数据解析为单个摘要工作表或工作簿。到目前为止,我已经能够从指定的单元格收集数据,但是我想包括一系列单元格,例如(“A2:B20”)。如何在循环过程中指定它?

Option Explicit
Sub GetMyData()
Dim myDir As String, fn As String, sn As String, sn2 As String, n As    Long, NR As Long

'***** Change Folder Path *****
 myDir = "C:\attach"

 '***** Change Sheetname(s) *****
 sn = "Title"
 sn2 = "Monday"


fn = Dir(myDir & "\*.xlsx")
Do While fn <> ""
 If fn <> ThisWorkbook.Name Then
With ThisWorkbook.Sheets("Sheet10")
  NR = .Cells(Rows.count, 1).End(xlUp).Row + 1

  'Pick cells from worksheet "Title"
  With .Range("A" & NR)
    .Formula = "='" & myDir & "\[" & fn & "]" & sn & "'!B4"
    .Value = .Value
  End With
  With .Range("B" & NR)
    .Formula = "='" & myDir & "\[" & fn & "]" & sn & "'!B5"
    .Value = .Value
  End With
  With .Range("C" & NR)
    .Formula = "='" & myDir & "\[" & fn & "]" & sn & "'!B6"
    .Value = .Value
  End With
  With .Range("D" & NR)
    .Formula = "='" & myDir & "\[" & fn & "]" & sn & "'!B7"
    .Value = .Value
  End With
  With .Range("E" & NR)
    .Formula = "='" & myDir & "\[" & fn & "]" & sn & "'!A1"
    .Value = .Value
  End With
  With .Range("F" & NR)
    .Formula = "='" & myDir & "\[" & fn & "]" & sn & "'!A2"
    .Value = .Value
  End With
  'pick cells from worksheet "Monday"

  With .Range("G" & NR)
   .Formula = "='" & myDir & "\[" & fn & "]" & sn2 & Range("A1:C57")

  End With
End With
End If
fn = Dir
Loop
ThisWorkbook.Sheets("Sheet10").Columns.AutoFit

End Sub

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    你可以做任何一个

    Col_1 = "A"
    Col_2 = "B"
    i = 2
    j = 20
    Range(Col_1 & i,Col_2 & j)
    

    Col_1 = "A"
    i = 2
    j = 20
    Range(Col_1 & i).Resize(j-i+1,2)
    

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      有几种方法可以做到这一点,假设你想要一个连续的范围:

      1. 将该确切字符串传递给Range 函数。例如Range("A3:C10")
      2. 将“第一个”单元格作为第一个参数传递,将“最后一个单元格”作为第二个参数传递。例如Range("A3", "C10")

      【讨论】:

      • 这两个选项都不起作用。我收到类型不匹配运行时错误 13。
      • 我不同意。在即时窗口中键入Range("A1:B4").Formula = "= 1 + 5"。您会发现该范围内的所有单元格都分配有公式。 Range("A1", "B4").Formula = "=1 + 5" 相同如果很难找出正确的字符串以进行输入,那么可能需要另一种引用您想要的单元格的方法。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-07
      • 1970-01-01
      • 2018-03-13
      • 2015-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多