2016-12-08 16 views
1

どなたでもお答えいただければ幸いです。 私の質問は以下の通りです:ワークシート上の最後に使用されたセルを検索し、行を別のワークシートにコピーしますか?

これは、私のExcelワークシートの最後の空でないセル/行を判断する正しい方法ですか?

xl.Worksheet sh; 
     int lastRow; 
     int fullRow; 

     sh = xlApp.Workbooks.get_Item("myExcelFile").Worksheets.get_Item("MySheet"); 
     fullRow = sh.Rows.Count; 
     lastRow = sh.Cells[fullRow, 1].End(xl.XlDirection.xlUp).Row; 

これが本当に正しい場合は、どのように行を取り出して別のワークシートにコピーするのですか。

lastRow.EntireRow.Copy(FirstEmptyCell); 

は、私は私の他のシートにコピーすることはできませんint型ビーイング:もっとspecifictであるために、列A の最初の空のセルは、私は私がこのようなものであるコマンドを使用しなければならないことを知っています。 提案がありますか?ここ

答えて

0
lastRow = sh.Cells[fullRow, 1].End(xl.XlDirection.xlUp).Row; 

lastRowはあなたがあなたの次の行上のオブジェクトとして使用することはできませんint次のとおりです。

lastRow.EntireRow.Copy(FirstEmptyCell); // int doesn't have an EntireRow property 

行うことができますは、2つの単一ラインに組み合わせることです。

Excel.Range myLastRow; 
myLastRow = sh.Cells[sh.Rows.Count, 1].End(xl.xlDirection.Up).EntireRow; 

今すぐmyLastRowは、コピーする行全体です。

myLastRow.Copy(destination); 
+0

うわー、私は速い応答と私を助けてくれてありがとう。 私の行がコピーされ、今すぐ私の目的地に移動する準備ができていると言うことをうれしく思います。 完全に機能した後、私はこのコードを投稿し、ここではどのように見えるのでしょうか。この同じことで問題を抱えている人は誰でもうまくいくでしょう。 もう一度ありがとうございます。あなたの返信は非常に高く評価され、受け入れられます! –

+0

問題はありません - あなたのコードが完全に機能しているなら、人々は改善のためのアドバイスや提案を提供できる[Code Review](http://codereview.stackexchange.com/)に投稿することをお勧めします:) –

+0

私はどんな助言や助けも非常に高く評価され有用であるため、確かにそれをしてください。 私が今作業しているプロジェクトは、基本的にVBAコードからC#コードに転記されています。プログラムとして作成したいので、「外部要素」を使用しないようにしています。 多かれ少なかれマクロですダイナミックな要素がいくつかあります。最後の行を動的に見つけて設定/コピーするのに苦労しています:) あなたの返信を見てどれくらいうれしいか分かりません。 –

関連する問題