2017-01-20 5 views
-1

誰でも助けてください私は実行時エラー '1004'を受け取りました。アプリケーション定義またはオブジェクト定義のエラー。セルに数式を挿入し、最後の行に下げます

私はライン上のエラー取得しています:。LASTROW =シート( "CATANを")細胞(Rows.Count、 "F")終了(x1Up)

Dim lastrow As Long 
lastrow = Sheets("CATAN").Cells(Rows.Count, "F").End(x1Up).Row 
Sheets("CATAN").Range("E:E").Locked = False 
Sheets("CATAN").Range("E1").Select 

ActiveCell.Formula = "=F1&""&G1" 
Sheets(Catan).Range("E1").AutoFill Destination:=Range("E1:E" & lastrow), Type:=xlFillDefault 

Sheets("CATAN").Range("E:E").Locked = True 

データは、それが行くよう.Row。 1行目は

A  |   B   |   C    |   D |  E  |   F    |  G 100  | 492935.7 |  6898792  |  56.707 |    |  %PO   | AB9265 101  | 492937.7 |  6898796  |  56.862 | |   NS   | 

です。私は間違いがありました。

+2

投稿を編集してください。まずタイトルは無意味です。 * VBA *と* Excel-VBA *はあなたが使ったタグに入っているので、タイトルには必要ありません。それらを削除すると*何も伝えていないコードエラー*が残る。タイトルには、検索結果に表示されたときに役立つように説明的な方法で質問している、または質問している問題が記載されている必要があります。第2に、*私のエラー*は、あなたが得ているエラーが何かを教えない限り、問題の説明として役に立たない。あなたの目の前で、画面上に表示されます。私たちと分かち合っていないという言い訳はありませんので、それが何であるかも分かります。 –

+1

これは 'x1Up'ではありません。小文字の 'L'は' 1'ではない 'xlUp'です。 –

+0

は調整しました。= F1& ""&G1はセルに自分の数式を挿入すると完全に正常に機能します。だから、私にあなたの偉大な知恵を贈与する前に式をチェックして、それを入力するとき、それはあなたのために働くなら、私に知らせてください。 式はエラーになりますいいえ、それはする必要がありますので、あなたのスコットCraner – Aussiehelper

答えて

3

あなたは、コードの1行でこれを行うことができます:あなたが行に基づいてインクリメントしたい知っているのに十分

Sheets("CATAN").Range("E1:E" & Sheets("CATAN").Range("F" & Rows.Count).end(xlup).row).formula = "=F1 & "" "" & G1" 

そのスマート。

F1とG1の結果の間にスペースを入れたいと思っていました

1

コードを実装するためのより良い方法については、the answer by Scott Cranerを参照してください。しかし、あなたがどのようなエラーがあったかを知るためにここには残しておきます。 x1Up代わりxlUpの -


あなたがタイプミスを持っています。

Dim lastrow As Long 
'Fix typo and specify which sheet "Rows" refers to 
lastrow = Sheets("CATAN").Cells(Sheets("CATAN").Rows.Count, "F").End(xlUp).Row 
Sheets("CATAN").Range("E:E").Locked = False 
Sheets("CATAN").Range("E1").Select 

'=F1&"&G1 is not a valid Excel formula 
ActiveCell.Formula = "=F1&G1" 

'Variable Catan not defined - I assume you mean the string "CATAN" 
Sheets("CATAN").Range("E1").AutoFill Destination:=Range("E1:E" & lastrow), Type:=xlFillDefault 

Sheets("CATAN").Range("E:E").Locked = True 
3

コメントで述べたように:

それは下ケースL代わりのxlUp1ある

はまた、以下に固定されているコード内の他のいくつかのエラーを持っています。

あなただけのシートが保護されていないことを確認し、ロックを解除し、細胞を再びロックする必要はありません。

R1C1表記ですべての式を一度に設定できます。

Dim lastrow As Long 
lastrow = Sheets("CATAN").Cells(Rows.Count, "F").End(xlUp).Row 
Sheets("CATAN").Range("E1:E" & lastrow).FormulaR1C1 = "=RC[1] & RC[2]" 
+0

R1C1記法を使用する必要はありません(下の私の答えを参照してください) –

+1

@DanDonoghueあなたは正しいですが、わかりやすく、わかりやすくあります。私はまた、長い行のコードを変数に分割する方が好きです。私には読みやすいようになっています。しかし、それは私の好みです –

+0

それは面白いです、私はそれがより簡単に見つけるように多くの人々がそれを好むと聞いていますが、私はいつもより簡単になるために直接参照を見つけた、私は推測コースの馬:)。 –

関連する問題