我在操作word的时候用到了range.copy() 这样可以方便我操作word内容。
可是当我在程序中使用了range.copy() 后,再paste()时,发现剪切板无内容可用但是,,但是,,在我调试的时候,只要在copy()方法上停留,copy()就可以拿到内容,不停留则仍然拿不到代码如下:
if (dt.Rows.Count > 0 && WordDoc.Tables.Count>0)
{
WordDoc.Tables[1].Range.Copy(); 复制步骤
for (int i = 1; i < dt.Rows.Count; i++)
{
WordDoc.Tables[1].Range.Paste(); 粘贴步骤
ro = WordDoc.Tables[1].Rows.Count / 2 + 1;
dr = WordDoc.Tables[1].Rows[ro];
WordDoc.Tables[1].Split(ref dr);
}
}
可是当我在程序中使用了range.copy() 后,再paste()时,发现剪切板无内容可用但是,,但是,,在我调试的时候,只要在copy()方法上停留,copy()就可以拿到内容,不停留则仍然拿不到代码如下:
if (dt.Rows.Count > 0 && WordDoc.Tables.Count>0)
{
WordDoc.Tables[1].Range.Copy(); 复制步骤
for (int i = 1; i < dt.Rows.Count; i++)
{
WordDoc.Tables[1].Range.Paste(); 粘贴步骤
ro = WordDoc.Tables[1].Rows.Count / 2 + 1;
dr = WordDoc.Tables[1].Rows[ro];
WordDoc.Tables[1].Split(ref dr);
}
}
WordDoc.Tables[1].Range.Paste(); 粘贴步骤你执行的拷贝是:WordDoc.Tables[1].Range.Copy();
你执行的粘贴是:WordDoc.Tables[1].Range.Paste(); 这个逻辑就是选中表格[1],拷贝,粘贴。lz你试试在一个真实的word文档里,选中一个表格,拷贝,粘贴,得到的结果是不是没有任何变化。不知道你能理解我的意思不,呵呵。解决方案就是:
你要设定一个新的range,不能在原来的range上执行paste,否则还是覆盖以前的内容,看上去就跟没有执行拷贝粘贴一样,实际上是执行了的,呵呵。