簡體   English   中英

ActiveSheet.Range(“ B3:B26”)。Value

[英]ActiveSheet.Range(“B3:B26”).Value

我對其他人所做的事情相當簡單,但對我自己卻復雜。

我編寫了接受CSV的代碼,將其打開並另存為XLSX。 很好,但我需要它來拾取B3:B26中某些文件夾的位置

   'Assign Variables
Dim objFSO As Object, objPickup As Object, objDropoff As Object, objFile As Object
Dim wb As Workbook, Dropoff As String, Pickup As String
Dim B3 As String, B26 As String
Dim LastRowMonthly46 As Long, b As Long, c As Long
Dim ADay As Integer, AMonth As Integer, AYear As Integer, myDate As Date
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Go to worksheet Menu
Worksheets("Menu").Activate
'Make variable Pickup equal to value of B3
Pickup = ActiveSheet.Range(B3 & ":" & B26).Value

'Make variable Dropoff equal to value of B6
Dropoff = ActiveSheet.Range("B28").Value
'Go to worksheet Report
Worksheets("Report").Activate
'Make tab report visible
Worksheets("Report").Visible = True
'Make tab Menu invisible
Worksheets("Menu").Visible = False
'Get the folder object associated with the directory
Set objPickup = objFSO.GetFolder(Pickup)
Set objDropoff = objFSO.GetFolder(Dropoff)
'Set values for cells A1,B1 and C1 and align text
Worksheets("Report").Range("A1").Value = "The files found in " & objPickup.Name & " are:"

我在考慮for循環,但是我的Pickup變量不會允許我做一些簡單的事情嗎? 謝謝

Public Sub TestMe()

    Dim ws As Worksheet: Set ws = ActiveSheet
    Dim B3 As Range: Set B3 = ws.Range("B3")
    Dim B26 As Range: Set B26 = ws.Range("B26")

    Dim pickUp As Variant
    With Application
        pickUp = .Transpose(ws.Range(B3, B26))
    End With

    Dim i As Long
    For i = LBound(pickUp) To UBound(pickUp)
        Debug.Print pickUp(i)
    Next i

End Sub
  • 如果它是單行,則可以使用Application.Transpose輕松地將范圍轉換為數組,例如B3至B26;

  • B3B26被聲明為范圍,因此ws.Range(B3,B26)被傳遞給pickUp數組;

  • 遍歷數組並顯示其值可以通過引用數組的LBoundUBound來完成;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM