我想使用Excel運行一組迴歸。由於迴歸的數量非常大,我想使用VBA自動執行該過程。許多回歸將運行在一組不同的變量上,所以我必須自動化迴歸數據的範圍。迴歸範圍
我用VBA錄音機來調用Excel迴歸工具的VBA版本。從記錄的結果是這樣的:
Sheets("Sheet2").Select
Application.Run "ATPVBAEN.XLAM!Regress", ActiveSheet.Range("$C$38:$C$49"), _
ActiveSheet.Range("$D$38:$F$49"), False, True, , ActiveSheet.Range(_
"$F$1:$N$23"), False, False, False, False, , False
該計劃是然後用間接的(地址())來代替$ C $ 38:$ C $ 49:
y1 = ActiveSheet.Range("b27")
Application.Run "ATPVBAEN.XLAM!Regress", ActiveSheet.Range("indirect(address(y1,3)):$C$49"), _
ActiveSheet.Range("$D$38:$F$49"), False, True, , ActiveSheet.Range(_
"$F$1:$N$23"), False, False, False, False, , False
細胞B27具有值38
。但是,當我嘗試使用y1運行代碼時,我收到一條錯誤消息。如果我用一個數字替換y1,即代替y1,我把38
代碼運行。
任何想法如何解決使用y1的問題?
如果您共享錯誤消息的文本,它肯定會有所幫助。但是,請注意'Range(「indirect(address(y1,3)):$ C $ 49」)'是不恰當的語法,不會解析爲範圍對象。使用立即窗口來檢查這一點。 –
我不能測試這個,但它可能值得嘗試ActiveSheet.Range(「間接(地址(」和Y1&「,3)):$ C $ 49」), –
感謝羅恩和湯姆。 @羅恩:你能解釋一下爲什麼它不會轉移到範圍對象中嗎?請注意我不是vba的專家。另外,什麼是直接窗口?我設法使用單元格解決了這個問題,我不知道這是否是最有效或最好的方式,但它的工作原理是:)。 – km1234