使用月份的可变范围VBA

  • 本文关键字:范围 VBA vba excel
  • 更新时间 :
  • 英文 :


我正在尝试创建一个变量范围,该范围将根据月份更新并引入不同的值范围。

January C8:D8
February C9:D9
March C10:D10
April C11:D11
May C12:D12
June C13:D13
July C14:D14
August C15:D15
September C16:D16
October C17:D17
November C18:D18
December C19:D19

这些是我根据月份需要的范围。

我现有的代码:

Sub PullDataFromClosedWorkbook()
Dim Source As Workbook
Set Source = Workbooks.Open("H:Integration ProjectsChk Req & Customer 
Payment SheetChk ReqsCheck Request.xlsm", True, True)
'bring to this workbook
ThisWorkbook.Activate
Worksheets("Sheet1").Range("B2:C2").Formula = Source.Worksheets("Consolidated 
Summary").Range("C11:D11").Copy
Worksheets("Sheet1").Range("B2:C2").PasteSpecial xlPasteValues
Source.Close SaveChanges:=False
End Sub

我的第一个想法是创建一个if函数,该函数基于一个包含月份的下拉列表,它可以查看月份并将范围设置为该值。不知道如何在vba中做到这一点。

执行此操作的一种方法是使用Month函数返回当前月份编号,然后可以将其用作起始范围的Offset

例如,由于现在是八月,Month(Date)返回8。如果您的起始范围是C7:D7,则Range("C7:D7").Offset(Month(Date))表示C15:D15

因此,您的代码可能看起来像这样(未测试(。

Sub PullDataFromClosedWorkbook()
Dim Source As Workbook
Set Source = Workbooks.Open("H:Integration ProjectsChk Req & Customer Payment SheetChk ReqsCheck Request.xlsm", True, True)
ThisWorkbook.Worksheets("Sheet1").Range("B2:C2").Value = Source.Worksheets("Consolidated Summary").Range("C7:D7").Offset(Month(Date)).Value
Source.Close SaveChanges:=False
End Sub

最新更新