L?I: B?n không th? xoá m?t Excel danh sách hàng t? s? ki?n CommandButton Click

ID c?a bài: 823988 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TRI?U CH?NG

B?n có xây d?ng m?t ph?n m? r?ng đư?c qu?n l? m? cho Office Excel 2003. Gi?i pháp c?a b?n s? d?ng các Nh?p vào s? ki?n c?a m?t MSForms CommandButton đi?u khi?n đ? lo?i b? hàng t? m?t Danh sách đ?i tư?ng n?m trên m?t b?ng tính. Khi b?n nh?n nút đ? lo?i b? các Danh sách hàng, hàng không đư?c c?t b?, và b?n có th? nh?n đư?c m?t l?i th?i gian ch?y.

T?NH TR?NG

Microsoft đ? xác nh?n r?ng đây là m?t l?i trong Office Excel 2003.

GI?I PHÁP

Đ? gi?i quy?t v?n đ? này, h?y ch?c ch?n r?ng CommandButton không có s? t?p trung khi b?n xoá hàng danh sách. S? d?ng m?t trong nh?ng phương pháp sau đây:
  • Đ?t các TakeFocusOnClick tài s?n c?a CommandButton đ? sai.

    - hay -
  • Re-select ch?n b?ng tính hi?n th?i đ? có tr?ng tâm t? CommandButton.

CÁCH GI?I QUY?T KHÁC

Đ? làm vi?c xung quanh v?n đ? này, s? d?ng m?t trong nh?ng phương pháp sau đây:
  • Đ?t các TakeFocusOnClick b?t đ?ng s?n cho các CommandButton ki?m soát đ? sai:
    protected void ThisWorkbook_Open()
    {
    	//Get a reference to the first worksheet.
    	ws = (Excel.Worksheet)(ThisWorkbook.Worksheets[1]);
    
    	//Set up the Click event handler for CommandButton1.
    	cb = (MSForms.CommandButton)(this.FindControl("CommandButton1"));
    	cb.Click+= new MSForms.CommandButtonEvents_ClickEventHandler(cbClick);
    
    	cb.TakeFocusOnClick = false;
    }
    


    - hay -
  • G?i cho các Ch?n phương pháp cho b?ng tính hi?n t?i L?a ch?n đ? lo?i b? t?p trung t? các CommandButton:
    private void cbClick()
    { 
    	ThisApplication.Selection.GetType().InvokeMember("Select",
    		System.Reflection.BindingFlags.Public | 
    		System.Reflection.BindingFlags.InvokeMethod | 
    		System.Reflection.BindingFlags.Instance,
    		null,
    		ThisApplication.Selection,
    		null);
    	
    	ws.ListObjects[1].ListRows[1].Delete();
    }
    

THÔNG TIN THÊM

Các bư?c đ? t?o l?i hành vi

  1. B?t đ?u Microsoft Visual Studio.NET 2003.
  2. Trên các Tệp tr?nh đơn, đi?m đ?n M?i, sau đó b?m Dự án.
  3. Trong danh sách các lo?i d? án, m? r?ng Các d? án h? th?ng Microsoft Office, sau đó b?m Visual C# các d? án. Ch?n Excel Workbook trong danh sách m?u, và sau đó nh?p vào Ok.
  4. Nh?p vào K?t thúc trong các Microsoft Office Project Wizard.
  5. B?m phím F5 đ? ch?y các d? án và m? b?ng tính trong Excel.
  6. S?a đ?i b?ng tính như sau:
    1. Ch?n ô A1.
    2. Trên các D? li?u tr?nh đơn, đi?m đ?n Danh sách, sau đó b?m T?o danh sách. Các T?o danh sách h?p tho?i s? xu?t hi?n. Nh?p vào Ok.
    3. Thêm b?t k? văn b?n vào các t? bào A2, A3 và A4 (A2:A4).
    4. Trên các Xem tr?nh đơn, đi?m đ?n Thanh công c?, sau đó b?m H?p công c? ki?m soát.
    5. V? m?t CommandButton đi?u khi?n trên b?ng tính. Tên m?c đ?nh là CommandButton1.
    6. Lưu b?ng tính, và sau đó b? Excel.
  7. Thêm m? sau vào các mô-đun m? Thisworkbook.cs:
    private MSForms.CommandButton cb;
    private Excel.Worksheet ws;
    
    protected void ThisWorkbook_Open()
    {
    	//Get a reference to the first worksheet.
    	ws = (Excel.Worksheet)(ThisWorkbook.Worksheets[1]);
    
    	//Set up the Click event handler for CommandButton1.
    	cb = (MSForms.CommandButton)(this.FindControl("CommandButton1"));
    	cb.Click+= new MSForms.CommandButtonEvents_ClickEventHandler(cbClick);
    }
    
    private void cbClick()
    {
    	try
    	{
    		//Delete the first row in the list object.
    		ws.ListObjects[1].ListRows[1].Delete();
    	}
    	catch (Exception ex)
    	{
    		System.Diagnostics.Debug.WriteLine(ex.Message);
    		MessageBox.Show(ex.Message);
    	}
    }
    
  8. B?m phím F5 đ? xây d?ng và ch?y các d? án.
  9. Nh?p vào CommandButton1.

    Kết quả M?t ngo?i l? b?t g?p khi xóa hàng trong danh sách. B?n nh?n đư?c thông báo l?i sau
    Ngo?i l? t? HRESULT: 0x800A03EC

Thu?c tính

ID c?a bài: 823988 - L?n xem xét sau cùng: 28 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft Visual Studio Tools for the Microsoft Office System version 2003
T? khóa: 
kbbug kbautomation kbnofix kbmt KB823988 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:823988

Cung cấp Phản hồi