我正在使用VC++ 6.0中的Excel自動化開發MFC程序。如何在MFC Excel中控制工作表的滾動條?
我想控制滾動條,這樣我可以在工作表的左上方放置一些單元格。
我發現在VBA中有一個Application :: Goto()方法,它可以滾動工作表並將特定的單元格放在工作表的左上角。 幸好在庫(Excel.h)中,我找到了和下面的代碼一樣的方法。
新增:
void _Application::Goto(const VARIANT& Reference, const VARIANT& Scroll)
{
static BYTE parms[] =
VTS_VARIANT VTS_VARIANT;
InvokeHelper(0x1db, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
&Reference, &Scroll);
}
但我不知道如何使用此方法。 我的意思是我不知道參數應該是什麼。儘管我已經看過MSDN文檔,但它只涉及VBA,而不是MFC。 The document說,它可以是範圍的對象,但我真的不知道。
m_App.Goto(COleVariant("A10"), gotoScrollTrue);
因爲我有使用「範圍對象」到VARIANT &不知道,所以我只是想這樣。但是,發生無效的參考錯誤。
我知道使用MFC很難找到關於Excel自動化的信息,但我別無選擇。
我希望會有人能救我。
P.S.我無法切換到.NET框架等其他工具。現在該程序正在使用硬件機器,並且它還包含許多其他功能,不僅僅是移動滾動。現在我正在修改我的未知老人編寫的代碼。我的程序有點像this。但MS只提供這些如何啓動像關於VC++ MFC Excel自動化的文檔。我不知道,但它感覺它是一個古老的遺物。當我用這個谷歌時,我想要的結果很少,而且幾乎是在10年前寫的。無論如何,我知道我很無聊,但希望有人知道如何用VC++開發Excel自動化。
你或許應該開始閱讀這裏:https://msdn.microsoft.com/en-us/library /d2tx7z6d(v=vs.110).aspx –
1)首先驗證您可以在Excel中編寫具有所需功能的VBA宏。 2)然後你使用oleview.exe並瀏覽到Excel的類型庫(在excel.exe中)並找出你需要的對象。 3)您可以#導入庫,或跳過它並使用CComDispatchDriver撥打電話。在我安裝在_Application功能的簽名是'HRESULT後藤( [中,可選] VARIANT參考, [中,可選] VARIANT滾動, [中,LCID]長LCID);' –
@RichHolton謝謝你你的回覆,但不幸的是我認爲我應該堅持這一點。 –