2012-04-26 7 views
1

VB PasteSpecialに問題があります。
このコードはエクセルVBで完璧に動作 、その後である、からVB Excelクリップボードの内容を必要とするPasteSpecial?

Selection.Copy 
Range("A1").Select 
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ 
    False, Transpose:=True 
Application.CutCopyMode = False 

しかし、私はデータを抽出し、サードパーティ製のソフトウェア(QlikViewを)を使用しています(あなたがデータを用いて細胞を選択していることを考えると) Excel文書にコピーされるはずです。そこ正常なペーストに問題はありませんが、それ転置されなければなりません。

私はコピーするワークブック内のすべてのコンテンツを持っていけないので、私はテーブルのデータがあるにもかかわらず、(最初の文書から何かをコピーしていないので、私は

Selection.Copy 

しかしを使用していない明らかに

、コピーメモリ)、この呼び出しは、不良引数の例外を返します(これは、最初にそのVERYブック内のセルをコピーし、次にそれを転置するためにマクロを呼び出すと発生します)。

実行時エラー '1004' が返さ。 RangeクラスのPasteSpecialメソッドが失敗しました。

はい、ドキュメントにペーストしてから、領域から切り取り、正しい場所に移動してトランスポーズできますが、それは不正なコーディングです。

はあなたのうちのどれかがこれを経験し、この作業を取得する方法を持っていますか?

答えて

1

あなたは上記のような方法を使用する必要があります。これを試すこともできます

Range("A1").Select 
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False 
Application.CutCopyMode = False 

しかし、もう一度コピーして転置する必要があります。他の賢明な方法はあなたがそれを転置することはできません。あなたはQlikViewをからそれをコピーした後、それがクリップボードに存在するように、データを転置するPasteSpecialを使用することはできません

+0

あなたはそれ以上の代わりに、 'ActiveSheet.Range(「A1」)を書いたようにそれが動作する理由それは奇妙ですPasteSpecial ....'とにかく、本当に時間のために私は狂気運転したエラーの解決に役立っていること:。Xを... 。ありがとう:-) – Enissay

+0

ああ、私は、2つの異なる方法です:[Worksheet.PasteSpecial](https://msdn.microsoft.com/en-us/library/office/ff835858.aspx)&[Range.PasteSpecial](https: //msdn.microsoft.com/en-us/library/office/ff839476.aspx)...ブリリアントMS:x – Enissay

2

理由は、データの形式によるものです。

あなたはQlikViewのテーブルからデータをコピー(私はあなたからコピーしていると仮定している)、それは3つのフォーマットでクリップボードにコピーし、それを:HTML、Unicodeと標準(コードページング)テキスト:

Screenshot of Clipboard viewer showing the different formats that QlikView copies to the clipboard

Excelのクリップボード形式でこれを比較:

Screenshot of Clipboard viewer showing the different formats that Excel copies to the clipboard

あなたが見ることができるようにExcelでデータをコピーするとき、それは、独自の形式にし、suコマンドとしてクリップボードにデータを保存しますchは必要に応じてセルを転置する方法を知っています。 QlikViewの場合、クリップボードにはプレーンテキストが含まれているだけなので、Excelはこれを転置する方法を知らないため、PasteSpecial呼び出しが失敗します。

QlikViewのテーブルからExcelにコピーする場合は、QlikViewで「ピボットテーブル」グラフを使用することができれば、QlikViewで転置を実行することをお勧めします(列と行をドラッグして願い)。それ以外の場合は、Siddharthのコードを使用してExcelに変換しなければなりません。

+0

これは完全であるとマークしていたはずですが、忘れてしまったはずです。はい、私はそのようなものに関連しなければならないと思っていましたが、前にその素晴らしい小さなプログラムを聞いたことはありませんでした。しかし、更新/確認をありがとう。 +1 – dozacinc

関連する問題