HRESULT: 0x800A03EC -----当EXCEL单元格处于编辑状态时

当Excel单元格处于编辑状态时,尝试赋值会导致错误HRESULT: 0x800A03EC。解决方法包括在赋值前保存Excel文件或检查并退出编辑状态。通过检测Excel工具栏按钮的Enabled状态,如果禁用则发送ESC键退出编辑,然后进行赋值操作。

    当EXCEL单元格处于编辑状态时,往单元格赋值会出现 HRESULT: 0x800A03EC 错误,原因是编辑时,EXCEL很多功能被禁用。

 

如何解决这个问题

方法1:赋值之前,将EXCLE文件保存一下

             Excel.Worksheet ws;//excel工作薄中的工作表

              Object missing = System.Reflection.Missing.Value;
             ws.SaveAs("c://temp.xls", missing, missing, missing, missing, missing, missing, missing, missing, missing);  

              ws[3,4]="test";

 

方法2: 

 

 

Excel中,如何在cell处于编辑状态时,对其用代码赋值

当我们用Winform程序去自动化Excel的时候,常常要实现这样的功能,给一个cell赋值,貌似很简单,得到range以后,设置它的Value2属性就可以了。但是还是会存在一个小问题,当你要赋值的cell正处于编辑状态的时候,针对该cell的所有代码将被忽略,赋值失败。(如当A1格处于编辑状态时,用代码对A1赋值将没有任何效果)

所以如何判断Excel是否处于编辑状态,成为解决这个问题的关键。很多人都曾试图找一个事件能在Excel进入编辑状态的时候触发,让程序能够得到通知。但是Excel至少可以通过四种方法进入编辑状态:

·         双击一个cell

·         按F2

·         选中一个cell,直接输入

·         选中一个cell,单击激活公式栏的输入框

Excel只提供了一个Worksheet. BeforeDoubleClick能够帮助我们检测到第一个事件,对于另外三个,我们无能为力。怎么办?

           当时困惑了很久,但是后来突然发现,当Excel处于编辑状态的时候,工具栏上很多很多的按钮都会被禁用。这下问题就简单了,选取一个按钮,获取它的句柄,在我们给cell赋值之前,测试这个按钮的Enabled状态,如果为false,表明Excel正处于编辑状态,调用API将Excel窗口激活,再给程序发送一个ESC键以退出编辑状态,然后实行赋值。整个代码如下:(我选择了Format Painter按钮来测试它的Enable状态。关于如何获得一个按钮的句柄,本blog上有文章详细解释,见 :“无敌的CommandBar和它的Control”)

        private Excel.Application app = null;

        private object missing = Type.Missing;

 

        public Form1()

        {

            InitializeComponent();

        }

 

        private void Form1_Load(object sender, EventArgs e)

        {

            app = Marshal.GetActiveObject("Excel.Application") as Excel.Application;

        }

 

        [DllImport("User32.Dll")]

        public static extern void SetForegroundWindow(int h);

 

        private void button1_Click(object sender, EventArgs e)

        {

            try

            {               

                if (!app.CommandBars["Standard"].Controls["&Format Painter"].Enabled)

                {

                    SetForegroundWindow(app.Hwnd);

                    app.SendKeys("{ESC}", missing);

                }

                app.get_Range("A1", missing).Value2 = "Test";

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

        }

测试以上Demo:关闭电脑中所有Excel的实例,新打开一个Excel,运行本程序。切换回Excel,使A1格处于编辑状态。切换到本程序,点击button1,会看到Excel的窗口被激活,并且A1的值变为“Test”。

 

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/v_jzho/archive/2007/10/09/1817057.aspx

3GPP无线通信协议集(中文版45份文件) cwts-reports-001系统连接模式下的层间过程.doc cwts-reports-002系统空闲模式下UE过程与连接.doc cwts-reports-002系统空闲模式下UE过程与连接模式下小区重选过程.doc cwts-reports-003无线资源管理 (RRM) 策略.doc cwts-reports-004系统无线资源管理策略.doc cwts-reports-005系统UE无线接入能力.doc cwts-specs-001名词术语.doc cwts-specs-002系统无线接口物理层技术规范:概述.doc cwts-specs-003物理信道和传输信道到物理信道的映射.doc cwts-specs-004复用与信道编码.doc cwts-specs-005扩频与调制.doc cwts-specs-006物理层过程.doc cwts-specs-007物理层测量.doc cwts-specs-008物理层提供的服务.doc cwts-specs-009MAC.doc cwts-specs-010RLC.doc cwts-specs-011PDCP.doc cwts-specs-012广播多点传送控制BMC.doc cwts-specs-013-RRC331.doc cwts-specs-014系统Iu接口技术规范-概述.doc cwts-specs-015系统Iu接口技术规范-层1.doc cwts-specs-016系统Iu接口技术规范:信令传输.doc cwts-specs-017无线接入网络应用部分(RANAP).doc cwts-specs-018Iu接口技术规范-数据传输及传输信令.doc cwts-specs-019用户平面协议.doc cwts-specs-020系统Iub接口技术规范.doc cwts-specs-021系统Iub接口技术规范:层1.doc cwts-specs-022信令传输.doc cwts-specs-023NBAP信令.doc cwts-specs-024用于公共传输信道数据流的数据传输和传输信令.doc cwts-specs-025用于公共传输信道数据流的用户平面协议.doc cwts-specs-026系统Iur接口技术规范:概述.doc cwts-specs-027层1.doc cwts-specs-028信令传输.doc cwts-specs-029RNSAP信令.doc cwts-specs-030用于公共传送信道数据流的数据传输和传输信令.doc cwts-specs-031用于公共传送信道数据流的用户平面协议.doc cwts-specs-032系统IubIur接口技术规范.doc cwts-specs-033系统Iub-Iur接口技术规范.doc cwts-specs-034.doc cwts-specs-036TD-SCDMA-RRC.doc cwts-specs-037.doc cwts-specs-038.doc cwts-specs-039.doc
ATE ATL ATM ATP ATQ ATT ATV ATX ATZ AT&C AT&D AT&F AT&S AT&Z AT&M AT&V AT&W AT+CIMI AT+COPS AT+CFUN AT+CPIN AT+CSQ AT+CPINR AT+CESQ AT+CGDCONT AT+CGDSCONT AT+CGTFT AT+CGATT AT+CGACT AT+CGDATA AT+CGREG AT+CEREG AT+CGCONTRDP AT+CGEQOSRDP AT*DIALMODE AT*AUTOAPN AT*CGDFLT AT+EPIN AT+MSTK AT+MEDCR AT*BAND AT*BANDRD AT*REGOPT AT*AU THReq AT*CGDFAUTH AT$MYFOTA AT*SELECTSIMSLOT AT+SINGLESIM ATO AT+CGMI AT+CGMM AT+CGMR AT+CGSN AT+CSCS AT+WS46 AT+DS AT+GMI AT+GMM AT+GMR AT+GSN AT+GOI AT+GCAP AT+GCI AT+ICF AT+IFC AT+IDSR AT+ASTO ATA ATD ATH AT+CSTA AT+CMOD AT+CVMOD AT+CHUP AT+CBST AT+CRLP AT+CEER AT+CRC AT+CVHU AT+CNUM AT+CREG AT+CLCK AT+CPWD AT+CLIP AT+CLIR AT+COLP AT+CDIP AT+CCFC AT+CCWA AT+CUSD AT+CHLD AT+CAOC AT+CSSN AT+CLCC AT+CPOL AT+CPLS AT+COPN AT+CNAP AT+COLR AT+CSSAC AT+CNEM AT+CPSMS AT+CEDRXS AT+CEDRXRDP AT+CCIOTOPT AT+CPAS AT+CIND AT+CPBS AT+CPBR AT+CPBF AT+CPBW AT*CPBC AT+CCLK AT+CSIM AT+CRSM AT+CACM AT+CAMM AT+CPUC AT+CCWE AT+CLAC AT+CTZU AT+CTZR AT+CGLA AT+CRLA AT+CCHO AT+CCHC AT+CUAD AT+CGPIAF AT+CISRVCC AT+CIREP AT+CEN AT+CAVIMS AT+CPNER AT+CIREG AT+CASIMS AT+CMEE AT+CGQREQ AT+CGQMIN AT+CGEQREQ AT+CGEQMIN AT+CGCMOD AT+CGPADDR AT+CGCLASS AT+CGEREP AT+CGSMS AT+CGSCONTRDP AT+CGTFTRDP AT+CGEQOS AT+CEMODE AT+CSCON AT+CIPCA AT+CNMPSD AT+CEUS AT+CEVDP AT+CMMIVT AT+CABTSR AT+CABTRDP AT+CGAPNRC AT+CDU AT+FCLASS AT+VTS AT+VTD AT+CSUEPOLICY AT+CRUEPOLICY AT+C5GREG AT+C5GQOS AT+C5GNSSAI AT+C5GPNSSAI AT+C5GNSSAIRDP AT*APPSTART AT*SETUEOSID AT*UTTEST AT+C5GCAPA AT+CWUS AT+CLADN AT+CMICO AT*overheat AT*voltagefreq AT*CDNID AT*CAG AT+C5GUSMS AT+C5GURSPQRY AT+Z5GTD AT*TSNCTRL AT+CSMS AT+CPMS AT+CMGF AT+CSMP AT+CSDH AT+CSCB AT+CSAS AT+CRES AT+CNMI AT+CMGL AT+CMGR AT+CMGS AT+CMSS AT+CMGW AT+CSCA AT+CNMA AT+CMGD AT+CMGC AT+CMMS AT AT*SLT AT*PMICREG AT*REGRW AT*RFTEMP AT*RFTEMPEX AT*SSGLPC AT*MORESMS AT*MRD_CDF AT*MRD_IMEI AT*CalInfo AT*MRD_SN AT*L1DEBUG AT*DSPINFO AT+CMUX AT*READVER AT*READCPUUID AT+RESET AT+RSTSET AT+IPR AT+DNS AT$MYPOWEROFF AT$MYSOCKETLED AT$MYGMR AT$MYCCID AT$MYNETURC AT$MYTYPE AT$MYNETCON AT$MYNETACT AT$MYIPFILTER AT$MYNETSRV AT$MYNETOPEN AT$MYNETREAD AT$MYNETWRITE AT$MYNETCLOSE AT$MYNETACK AT$MYNETACCEPT AT$MYNETCREATE AT$MYBCCH AT$MYBAND AT$MYTIMEUPDATE AT$MYLACID AT$MYGPSPOS AT$MYGETKEY AT$MYSYSINFO AT$MYSYSINFOURC AT$MYDOWNLOAD AT^SPN AT+CPIN2 AT*EPIN AT*SIMDETEC AT*EUICC AT+CWRITESIM AT*CLCK AT*MEPCG AT*ENVSIM AT*CNMA AT*RSTMEMFULL AT+CMEMFULL AT*CSCB AT*CBMCS AT*CBRAT AT+CMRSS AT+CMGSS AT+CMSMS AT+CMGMS AT*CMGF AT^LKSMSSTA AT+EEMOPT AT+EEMGINFO AT*PROD AT*POSFUN AT+ATDB AT*TGSINK AT+CGSEND AT*ICSSINK AT+VPDUS AT+VHDL AT+VECHO AT+VDUMP AT*COMMTR AT+LTEPOWER AT*LTETR AT*GSMTR AT*CISCC AT*CIIND AT*IMSSRV AT*POCCMD AT*PRXYSET AT*PRXYRSP AT*CHAPAUTH AT*WIFICTRL AT*NETACT AT*NETREF AT*NETDNS AT*NETIF AT*NETIFCM AT*MPSAPN AT*COMCFG AT*IMLCONFIG AT*ENVCFG AT+ECHUPVT AT$VTS AT*DIALE AT*ECCLIST AT*IMSSRV AT*POCCMD AT*PRXYSET AT*PRXYRSP AT*CHAPAUTH AT*WIFICTRL AT*NETACT AT*NETREF AT*NETDNS AT*NETIF AT*NETIFCM AT*MPSAPN AT*COMCFG AT*IMLCONFIG AT*ENVCFG AT+ECHUPVT AT$VTS AT*DIALE AT*ECCLIST AT*CSCS AT*CCIREG AT^CACAP AT+GETIP AT*NVMFLUSH AT+PEER AT*REJCAUSE AT*CFUN AT*CTZR AT*ADMINDATA AT+CGCI AT+CGOI AT*BANDIND AT*POWERIND AT*FASTDORM AT*CELL AT*BLACKCELL AT+ERGA AT+ERTCA AT*FILETEST AT*CGSN AT*MODEMRESET AT*HTCCTO AT*EHSDPA AT*FDY AT^SYSINFO AT*NASCHK AT+BGLTEPLMN AT*GATR AT*GRIP AT*CGMR AT*CGATT AT*LTECOEX AT*CSQ AT+CPLMNS AT*URSLCT AT*SECCAP AT+OPERCFG AT*PSDC AT+MPBK AT+TRUSTNUM AT+CHKTRUSTNUM AT*FDNBYPASS AT+LOG AT*LWIPCTRL AT*NTP AT*MTU AT*ISIMAID AT^HVER AT+ZDON AT*ASRCOPS AT*ICCID AT*SIMPOLL AT*REGMODE AT+CELLINFO AT*VER AT+PACSP AT*GETIP AT*ROAMINGDATA AT*AUTOTZ AT*DNSCFG AT+AOPS AT+AOPSCFG AT+MSCLASS AT*DELFBPLMN AT*COMFEATURE AT*RESENDPARA AT+CMER AT*CSCO AT+APQUIT AT+wifi AT+sdiophase AT+MIFIMAC AT+FUNC AT+MIFISSID AT+WIFIMIXEDKEY AT+WIFIFUN AT+FLASHBP AT*MRD_SECOND_SN AT+GETCHIPUID AT*VIRTUALICCID AT+UEICCID 以上是我通过AT+CLAC指令返回的信息,给我整理下每个指令的含义
最新发布
12-14
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值