我开发了一个异步套接字方法,以便从其他应用程序接收文本并将其显示在Excel工作表中。 当AsyncCallback方法收到信息时,它会尝试在Excel工作表中编写此消息。
一切正常,但如果在同一时刻执行该方法,我正在编辑另一个单元格,ws.get_Range(" A1")。值不起作用。 我能解决吗?有没有其他方法可以强制性地在Excel的任何其他事件上设置此消息?
private void MessageCallBack(IAsyncResult aResult)
{
try
{
byte[] receivedData = new byte[10];
receivedData = (byte[])aResult.AsyncState;
ASCIIEncoding aEncoding = new ASCIIEncoding();
string receivedMessage = aEncoding.GetString(receivedData);
Worksheet ws = SingletonExcel.getWorksheet();
ws.get_Range("A1").Value = receivedMessage
}
catch (Exception ex)
{
MessageBox.Show("the Cell A1 has not modifed: " + ex.Message);
}
}
答案 0 :(得分:0)
您可以在设置值之前尝试激活工作表。我不确定原因,但如果您使用的对象不活动,Excel api有时无法检索值。
ws.Activate()