0
私は単純なアドインを使って範囲をコピーし、それを別の場所に貼り付けます。今Excelの範囲をコピーしてもセルのサイズを維持する
var excel = Marshal.GetActiveObject("Excel.Application") as Excel.Application;
int index = Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet.Index;
Excel.Worksheet activeSheet = excel.Worksheets[index] as Excel.Worksheet;
Excel.Worksheet newSheet = excel.Worksheets.Add();
Excel.Range toCopy = activeSheet.UsedRange;
toCopy.Copy();
Excel.Range range = newSheet.Cells[1, 1] as Excel.Range;
range.Select();
newSheet.Paste();
私がコピーしている間にセルサイズを維持し、それらを貼り付けることができるか:セルサイズをデフォルトにリセットもらうことを除いてすべてが
これは、この操作を担当するスニペットがある...、意図のように動作します?
'xlPasteAll'でその' range'インスタンスの[PasteSpecial](https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.range.pastespecial.aspx)を試しましたか?最初の議論として? – rene
newSheet.Paste();行を変更します。をnewSheet.PasteSpecial(Excel.XlpasteType.xlPasteAll)に設定します。私は今System.Runtime.InteropServices.COMExceptionを実行します: 'HRESULTからの例外:0x800A03EC'例外。以前はpasteSpecialを使用していませんでしたが、ここで何か不足している可能性があります。 –
ワークシート・タイプのPasteSpecialは、RangeのPasteSpecialと異なります。そのため、私はrange.PasteSpecial(xlPasteAll、/ *必要に応じて他の引数を追加する* /)のように 'range 'で明示的に呼び出していると言います。 – rene