2017-12-13 8 views
3

私は理解できない狂った問題に遭遇しましたが、まだ回避策を見つけられませんでした。VBAは定義されたセルの代わりにテーブル全体を塗りつぶします

最初に、他のブックからの情報に応じて、ブックにさまざまなシートを埋め込むExcelマクロがあります。私は、値を表示するだけで、1つのブックの指定されたセルに値を含むWebサイトへのハイパーリンクを含める必要があります。このハイパーリンクは、特定の細胞でのみ利用可能です

=HYPERLINK("https://example.com/value","value") 

を以下のように私は式を挿入しようと、その条件が真のどこにのみ表示されます。 ここで狂った部分について:通常の文字列またはintを使ってハイパーリンクを挿入するセルを塗りつぶしても、それはうまく動作し、VBAは指定したセルだけを塗りつぶします。ハイパーリンクを挿入すると、ワークシート上の列全体が塗りつぶされますが、他のすべては同じ方法で保持されます。 は、以下のコードの断片を見つけて下さい:

RequestID = Workbook1.ActiveSheet.Cells(i, 1).Text 'Request number 

Workbook2.Sheets("Sheet1").Cells(y, 4) = RequestID  

これはセルのみ(Y 4)予想通り正しいリクエスト数とを満たす

Workbook2.Sheets("Sheet1").Cells(y, 4) = "RequestID" 

これは、セル塗りつぶし(yは、4)と文字列「RequestID」が期待どおりに

Workbook2.Sheets("Sheet1").Cells(y, 4) = "=HYPERLINK(" & Chr(34) &"https://example.com/" & RequestID & Chr(34) & "," & Chr(34) & RequestID & Chr(34) & ")" 

これは正しく機能するハイパーリンクを持つヘッダーを除いて、テーブル全体を埋めます。

私は本当に理由を理解していないし、私は考えられる問題を考えることができません。たぶん誰かが私のヒントを持っているか、回避策を知っているかもしれません。

答えて

2

通常の細胞を使用した場合、期待どおりに機能しました。しかし、書式付きテーブル(別名ListObject)でそれを試したときには、式であり値ではないので、列全体が満たされます。これが事実である場合は、セルにハイパーリンクを置く(してから戻ってtrueに設定)する前に、次に

Application.AutoCorrect.AutoFillFormulasInLists = False

を設定してみてください

+0

パーフェクト、これは私がそれを期待ように動作します。私はこの方法では回避策を知らなかった。どうもありがとうございました! –

関連する問題