1. 程式人生 > >excel動態建立控制元件

excel動態建立控制元件

分配上單擊VBA函式到一個Excel的Userform中動態建立的按鈕 Sign InTop AuthorsTerms of ServiceContact UsBlog 
.htaccessAdmin 
Home    English Language Content







分配上單擊VBA函式到一個Excel的Userform中動態建立的按鈕
我動態建立的按鈕在Excel使用者窗體用下面的程式碼: 

With Me.CurrentFrame.Controls.Add("Forms.CommandButton.1")     .Caption = "XYZ"     .name = "AButton"     .Font.Bold = True     .ForeColor = &HFF&     ... blah blah blah End With 我想指定一個函式來執行這些按鈕被點選時,但我不能找到一個直接的方式做到這一點,因為那裡沒有財產的按鈕本身的一部分。 


有沒有辦法做到這一點使用上述成語? 我應該在這整個事情用不同的方式去? 

#: 566770     excel    vba    userform    event-handling     User: notnot 
Answer: 566965
你需要動態建立程式碼為每個按鈕/事件處理程式。 

它需要做位-在這裡看到: http://navpadexcel.blogspot.com/2006/11/httpwwwcpearsoncomexcelvbehtm.html

一個更好的辦法可能是建立一個按鈕的形式(如你認為你會需要很多)提前一堆。 建立事件處理程式程式碼以及。 使他們所有隱藏的最初。 

然後,當你開啟你的形式可以動態改變按鈕的標題,使他們看到並四處移動它們。 事件程式碼建立初期將與啟用的按鈕按預期。 


#: 566965     excel    vba    userform    event-handling     User: DJ 
Comments for #: 566965
聰明的主意! 似乎一切都需要在VBA被聰明。   #:378249  notnot  
Answer: 1517920
下面應該努力 

Dim NewButton As OLEObject Dim CodeModule As Object Set NewButton = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _     Link:=False, DisplayAsIcon:=False, Left:=52.5, Top:=Hght, _     Width:=202.5, Height:=26.25) NewButton.Object.Caption = "Click Me!" Set CodeModule = ActiveWorkbook.VBProject.VBComponents.VBE.ActiveCodePane.CodeModule CodeModule.InsertLines CodeModule.CreateEventProc("Click", NewButton.Name) + 1, vbTab & "MsgBox ""Hello world""" 


#: 1517920     excel    vba    userform    event-handling     User: Alex 
Answer: 971866
我一直在看這一點。 看來你可以通過使用的onClick屬性的巨集: 

Command1.OnClick = "Macro1" 然後建立一個以該名稱,執行所需的功能的巨集。 
這是我劈解決此之前,我找到更好的。 

#: 971866     excel    vba    userform    event-handling     User: n/a 
Answer: 567117
網路上的每一個搜尋歸結到這個程式碼: 

Dim NewButton As Control    Dim CodeModule As Object   Set NewButton = Me.Controls.Add("Forms.CommandButton.1", "MyButton", True)   NewButton.Caption = "Click me!"   Set CodeModule = ActiveWorkbook.VBProject.VBComponents.VBE.ActiveCodePane.CodeModule   CodeModule.InsertLines CodeModule.CreateEventProc("Click", NewButton.Name) + 1, vbTab & "MsgBox ""Hello world""" 不過,我已嘗試了所有的例子和無法讓他們的工作。 

#: 567117     excel    vba    userform    event-handling     User: Stefan 
Search
   Bookmark
Related Articles
Topic: event-handling
Raising C# events with an extension method - is it bad?
event handler problems c#
Fake "click" to activate an onclick method
install EventFilter on QWidget (qt4.4.3/kde4)
Override Button_click event handler
C#: Difference between ' += anEvent' and ' += new EventHandler(anEvent)'Topic: excel
How do you get a spreadsheet to open Excel instead of a browser window?
Create Excel (.XLS and .XLSX) file from C#
C# Technique - Getting Constant Values By String
.Net Excel Add In Help
c# How to access an excel cell?
Non-Sequential RangeTopic: userform
VBA UserForm ObjectTopic: vba
How can I URL encode a string in Excel VBA?
Is there any way to authenticate user in a ms-access database?
access vba: Runtime error 3734
Importing/Exporting Relationships in MS Access
Making Excel macro for fast data entering ::: VBA ::: Excel :::
Show Cell Range on UserForm; then updateIndex
Map: db
so - Database
sf - Database
su - DatabaseMap: international
de. German
es. Spanish
fr. French
id. Indonesian
it. Italian
ja. Japanese
ko. Korean
pt. Portuguese
ru. Russian
th. Thai
vi. Vietnamese
zh-cn. Chinese
zh-tw. ChineseMap: sitemap
Update Sitemap
Page: «
Page: 939
Page: 940
Page: 941
Page: 942
Page: 943
Page: 944
Page: 945
Page: 946
Page: 947
Page: 948
Page: 949
Page: 950
Page: 951
Page: 952
Page: 953
Page: 954
Page: 955
Page: 956
Page: 957
Page: 958
Page: 959
Page: 960
Page: 961
Page: 962
Page: 963
Page: 964
Page: 965
Page: 966
Page: 967
Page: » 
Automagic Translation
0.2338.3.41.22.11.23  Dump from StackOverflow 

相關推薦

excel動態建立控制元件

分配上單擊VBA函式到一個Excel的Userform中動態建立的按鈕 Sign InTop AuthorsTerms of ServiceContact UsBlog .htaccessAdmin Home    English Language Content分配上單擊

動態建立控制元件的序列化與反序列化

 public Button   Btn = new Button(); //序列化儲存 savedButton = XamlWriter.Save(Btn); //反序列化 還原 if (!string.IsNullOrEmpty(savedButton

vb動態建立控制元件

例如,當你要新增一個TreeView控制元件時,VB會要求你證明你已經得到了合法的授權來建立該控制元件的例項。換句話說,VB要證明這個控制元件是買來的,而不是從其它附有該控制元件的程式中借來的。 要證明你經過了合法的授權有下面幾種方法:         在窗體上放置一個控制元件。這也是最簡單的方法。你完全沒有

動態建立控制元件佈局與自動大小跟隨

有人認為用寫的動態建立控制元件很高階,其實我更喜歡拖放控制元件進行各種屬性和事件設定很方便,而不是用寫的進行各種屬性和事件的設定,結合以前寫的例子,對各類設定做了歸類,比較方便集中寫作。 using System; using System.Collections.

MFC動態建立控制元件--CStatic

1.動態建立CStatic文字控制元件   建立方法:CStatic::Create     BOOL   Create(   LPCTSTR   lpszText,   DWORD   dwStyle,   const   RECT&   rect,   C

Qt動態建立控制元件並實現佈局

最近搞的一些需求有相關的設計,從網上找來一段程式碼,受到一些啟發,記下來備用。 有相關需求的可以參考 直接上程式碼: if(icreateControlNum<=display_num_Line) { rownum=1; display_num_Line=icr

MFC動態建立控制元件(按鈕)及新增訊息響應

動態控制元件是指在需要時由Create()建立的控制元件,這與預先在對話方塊中放置的控制元件是不同的。 一、建立動態控制元件: 為了對照,我們先來看一下靜態控制元件的建立。 放置靜態控制元件時必須先建立一個容器,一般是對話方塊,這時我們在對話方塊編輯視

在C++Builder中動態建立控制元件

當開發類似解釋程式或實現視覺化操作功能等一類的應用程式時,都需要動態地建立控制元件(物件),而且還要為這些控制元件新增適當的事件處理程式,下面將介紹在C++Builder中如何實現基本的實現框架。 動態建立控制元件的一般過程:   TButton *btn = new TBu

ListView動態建立控制元件、新增資料(單個Activity)

因為專案需要這個功能,所以先寫了個Demo測試一下,Java學了半吊子然後直接上Android做專案,各位大神可以提出點意見,小弟虛心接納。這裡的刪除按鈕還沒實現功能,時間不夠了得回宿舍睡覺了,不想熬夜太難受。先上效果圖:下面說實現的大體思路:1、首先在 MainActivi

Delphi 動態建立控制元件,賦值,使用

 uses 中定義: type   TMyComponent = class(TComponent)   public     item1, item2, item3, item4, item5, item6: string;     constructor Crea

C++ Builder 動態建立控制元件

當開發類似解釋程式或實現視覺化操作功能等一類的應用程式時,都需要動態地建立控制元件(物件),而且還要為這些控制元件新增適當的事件處理程式,下面將介紹在C++Builder中如何實現基本的實現框架。動態建立控制元件的一般過程:  TButton *btn = new TButt

WPF 後臺動態建立控制元件

一、基本控制元件: 1、 Grid 2、 StackPanel 3、 Border 4、 Button 5、 CheckBox 6、 ComboBox 7、 DataGrid 8、 Image 9、 Label 10、

在VB中建立和使用動態陣列控制元件的方法總結

在VB中,MSHFEXGRID不支援文字框,為了解決這個問題,一般的方法就是通過一個文字框的顯示和隱藏,並獲得表格單元的座標,來實現向MSHFLEXGRID中錄入資料的,具體方法我記得在本博中有,就不說了,自己搜一下 今天要說的是在MSFLEXGRID中動態新增多個控制元件

Delphi 程式碼建立控制元件與事件動態繫結

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TF

OFFICE 無法建立控制元件,因為它未經正確授權

近來在XP環境下執行excel,新增winsock控制元件時,提示“無法建立控制元件,因為它未經正確授權”,經過多方搜尋解決了此問題。 原來excel的部分控制元件執行需要相應的授權。那麼如何授權呢?發現安裝了VB6的系統可以正常新增 winsock控制元件,說明vb6會

執行緒間操作無效: 從不是建立控制元件“XXX”的執行緒訪問它 [Winform]執行緒間操作無效,從不是建立控制元件的執行緒訪問它的幾個解決方案,async和await?

方法1  Invoke((MethodInvoker)(()=>{XXX.Text = message;}));   方法2 取消跨執行緒檢查 Control.CheckForIllegalCrossThreadCalls = false;  

invoke委託解決“執行緒間操作無效: 從不是建立控制元件的執行緒訪問它”的問題

###1.問題描述 線上程中更改控制元件屬性時,編譯器報錯:“執行緒間操作無效: 從不是建立控制元件的執行緒訪問它”。檢視資料後得知這個問題的根本在於,建立新執行緒後,新執行緒跟主執行緒同步執行,這時如果新執行緒提出對控制元件進行修改,將被編譯器報錯,因為可能會出現主執行緒跟新執行緒同時

C# 新增Excel表單控制元件(Form Controls)

在Excel中,新增的控制元件可以和單元格關聯,我們可以操作控制元件來修改單元格的內容,在下面的文章中,將介紹在Excel中新增幾種不同的表單控制元件的方法,包括:  新增文字框(Textbox)  單選按鈕(Radio button)  複選框(Checkbox

安卓動態新增控制元件_向LinearLayout中增加控制元件

背景:        在有些情況下,需要通過程式碼自動向頁面內增加控制元件,而不是事先在xml檔案中寫好。本文介紹向LinearLayout中增加控制元件。 解決方案:     1.新增單個控制元件樣例       LinearLayout layout = find

android 在java程式碼中動態設定控制元件的位置和設定片大小

需要動態改變佈局裡面控制元件的相對位置 如: 1.改變RelativeLayout佈局裡面某個控制元件的layout_toLeftOf 的屬性 RelativeLayout.Layoutparams params = (RelativeLayout.LayoutParams)view