2013-08-23 88 views
0

我想用VBA自動化Excel中的月度報表,其中最終的自動填充基於每月隨着客戶端數量的變化而變化的可變行數。例如:如果這個月我有25個客戶,我可以很容易地硬編碼,我想創建25行報告。但在下個月我有30個客戶時,我的代碼仍然會說25,因此會錯過5個客戶。可變行數的自動填充

我正在努力的一個解決方案是計算行數並將其應用於自動填充公式。試圖找到像這樣讀取的代碼:自動填充範圍A1到C「工作表X中的行數」。

現在我知道這顯然是不行的,但是這是我可憐的最好的嘗試:

Sub FillReport() 
Sheets("Sheet1").Select 
Range("D1").Select 
ActiveCell.FormulaR1C1 = "=COUNTA(A:A)" 
Sheets("Sheet2").Select 
Range("A1:C1").Select 
Selection.Autofill Destination:=Range("A1:C(Sheets("Sheet1").Range("D1").Select)") 

我沒想到這個工作,但無論如何想嘗試一下。正如你可以看到我相當的VBA新手......

如果任何人有任何洞察力,將是非常有益的,因爲我覺得應該有一種方法來完成這一點,我完全失去了我自己。

謝謝。

+0

您應該指定要使用(編程語言)和你迄今取得的成就的工具。 – IvanH

+0

IvanH:對不起,我最初錯過了。我正在使用VBA。我已經能夠完全自動化來自4個不同電子表格的報告,但完全停留在最後一部分,這實質上只是一個複製和粘貼功能。 – SeaDog2588

+0

沒有適當的標籤,你不可能得到答案。但是迄今爲止嘗試的代碼仍然缺失。 – IvanH

回答

0

我喜歡用手動創建的範圍值來做到這一點,使其更清晰。

因此,像:

Dim myRngStr as string 
myRngStr = "A1:D" & Sheets("Sheet1").Range("A1").end(xldown).row 'I don't know where you will find this actually 
Range("A1").Autofill Destination:=Range(myRngStr) 
+0

我不斷收到「Range class failed的自動填充方法」消息。你能給我一些關於如何將這個輸入到我的子文件中的指令,以及我必須相應地改變哪些項目?我從來沒有使用過「myRngStr」,因此我沒有正確實現你的答案。 – SeaDog2588