使用月份的可变范围VBA

使用月份的可变范围VBA,vba,excel,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 这些是我需要的范围,基于现在是哪个月 January C8:D8 Febr

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

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
这些是我需要的范围,基于现在是哪个月

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 Projects\Chk Req & Customer 
Payment Sheet\Chk Reqs\Check 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函数,该函数基于一个包含月份的下拉列表,它可以vlookup该月份并将范围设置为该月份。不确定如何在vba中执行此操作。

执行此操作的一种方法是使用返回当前月数,然后将其用作起始范围的偏移量

例如,由于是八月,
Month(Date)
返回8。如果您的起始范围是
C7:D7
范围(“C7:D7”)。偏移量(月(日))
C15:D15

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


使用获取月数,然后从范围“C7:D7”中获取偏移量。谢谢,这非常有效。因为我们提前一个月结账,所以我的月公式是+1。你知道我如何在一个固定范围和选项卡相同的文件夹中对多个woorkbooks执行此操作吗?+1在当前月份为12月的情况下不起作用-在这种情况下,你需要
Offset
1行,但代码将
Offset
13。所以你需要处理这种可能性。如果答案是可以接受的,请点击旁边的复选标记,将其标记为接受,然后根据需要提出一个新问题-尽管也有一些例子说明如何回答你的问题。好的,我输入了一个If stmt,说:如果MyMonth>“12”,那么MyMonth=Month(MyDate)-12明白了,我知道了如何接受答案。谢谢你的帮助!没问题,很乐意帮忙!若您在使用多个工作簿时遇到任何问题,请随时提出新问题。