2016-06-16 44 views
3

幾年前,使用Excel 97,我寫的,所使用的Application.InputBox方法2007

Set R = Application.InputBox(Prompt etc. ... Type:=8) 

方法供用戶選擇打開的工作簿/工作表的單元格的VBA程序。這工作沒有問題,但現在我正在修改Excel 2007的程序,並且只有當用戶鍵入A1格式的地址時才起作用。它不允許用戶移動打開的工作簿和工作表,或者滾動工作表,找到他想要的單元格。

然而,奇怪的是,如果它位於一個宏中,它可以像廣告一樣工作,但只能在與宏相同的工作簿中使用鼠標選擇一個單元。

我想知道是否有其他人遇到過這個問題,他們是否找到了解決辦法?

+0

代碼位於哪裏? – Rory

+0

代碼位於與要分析的其他工作簿一起打開的xlsm文件中。該代碼位於該工作簿的vba項目中。我提到了將它放入目標工作簿的宏中的實驗 - 我主要是爲了確定問題不在代碼本身。這是否清楚?我可能不瞭解你的問題的含義。 –

回答

0

你的代碼對我來說似乎很好。我從來沒有在Excel 97中使用這種方法,所以我不知道輸入框是否顯示不同。

我已在2007年和2013年檢查過它(將代碼放置在代碼模塊和工作表對象中),並且Application.InputBox(...,type:=8)確實允許用戶從打開的工作簿中選擇工作表和範圍。

唯一的區別是,2007年不允許用戶離開顯示輸入框時處於活動狀態的工作簿。

從解決範圍對象中提取工作表是否存在問題?這可以使用Set ws = r.WorksheetsheetName = r.Worksheet.Name完成。

希望這會有所幫助。

+0

到最後一段:否 - 我唯一的問題是通過單擊(其他)打開的工作簿中的單元格來獲取範圍對象。由於用戶已經從列表中選擇了wb和ws(我把這個放在這裏是因爲我不能用鼠標把他放到那裏),我會在調用InputBox方法之前嘗試激活它,但我確信我已經在一段時間之前嘗試過了。非常感謝您的想法。 –

+0

我試圖激活ws,但它並沒有出現 - 至少在整個過程結束之前,我想用鼠標選擇單元很長一段時間。我已經回到選擇A1地址。 –

相關問題