2017-04-16 34 views
0

私はセル "A1"に入れた内容に基づいて変更するURLを作成しようとしていますが、 "Constant expression required"というコンパイルエラーが続いています。定数式が必要です - vba

「バナナ」の2行目にエラーがあります。

banana = Range("A1") 

Const URL As String = "http://openinsider.com/screener?s=" & banana & "&o=&pl=&ph=&ll=&lh=&fd=730&fdr=&td=0&tdr=&fdlyl=&fdlyh=&daysago=&xp=1&xs=1&vl=&vh=&ocl=&och=&sic1=-1&sicl=100&sich=9999&grp=0&nfl=&nfh=&nil=&nih=&nol=&noh=&v2l=&v2h=&oc2l=&oc2h=&sortcol=0&cnt=100&page=1" 
Const READYSTATE_COMPLETE As Integer = 4 

答えて

2

VBAはConst URLを期待していますが、実際には動的変数String、ないConstとしてそれを使用しようとしています。

あなたのURLRange("A1")の値に応じてダイナミックになりたい場合は、以下のコードを使用します。

Dim banana As String 
Dim URL As String 

banana = Range("A1").Value 
URL = "http://openinsider.com/screener?s=" & banana & "&o=&pl=&ph=&ll=&lh=&fd=730&fdr=&td=0&tdr=&fdlyl=&fdlyh=&daysago=&xp=1&xs=1&vl=&vh=&ocl=&och=&sic1=-1&sicl=100&sich=9999&grp=0&nfl=&nfh=&nil=&nih=&nol=&noh=&v2l=&v2h=&oc2l=&oc2h=&sortcol=0&cnt=100&page=1" 
-1

を実際にあなたがエラーを取得しているあなたは定数を宣言するとき、あなたはそれを与える値である必要がありますので、定数も。変数で定数を宣言することはできません。

ように文字列

バナナ=シート(1).Range( "A1")などの文字列 点心URLとして

薄暗いバナナ、次のように宣言します。バリュー

使用する場合やURLは、A1の値が変化するごとに

URL = "https://as.com"

その後、他のコードを変更しますので、ここでのSelect Caseのいずれか。

+0

単純に変数の値が変更される可能性があるため、 'If'または' Select Case'は必要ありません。そのため、プログラミング言語には変数があります。そのため、コードで使用できるようになり、コードは変数の現在の値が何であれ使用します。 – YowE3K

+0

元の質問を確認してください、A1の値が論理的にA1をテストすることによってのみ実行できる場合は、URLが変更されます。 –

+0

いいえ、 'URL =" http://openinsider.com/screener?s= "&banana&"&o =&pl =&page = 1 "'のような文を書くことができます。文字列 ''&o =&pl =&page = 1 "'と連結された変数 "banana"の現在の値と連結された "http://openinsider.com/screener?s="定数の値を計算するときに変数を含めることはできませんが、 'URL'は定数ではなく変数であるため、変数を使って' URL'を計算することができます。これを行う正しい方法については、[@ ShaiRadoによる回答](http://stackoverflow.com/a/43439970/6535336)を参照してください。 – YowE3K

関連する問題