2016-12-30 5 views
0

私は2つのワークシート、製品グループとデータベースがあります。データ検証付きのVBAアップデートセル?

私のシートを、製品グループは、以下のようなレイアウトになっています。

A4 
A5  {Button} 
A6 
A7 
A8 

ユーザーは、以降の列A4に値を追加することができます。このリストは、A4- A8またはA4〜A100まで拡張できます。

私は、彼らは列Aの値を更新した後、ユーザーがマクロを実行することを可能にするボタンを作成している

セルT7の私のデータの検証に使用された行をLastにA4から値を挿入する必要があり、このマクロ私のデータベースシートに。私は、この行にエラーを取得するいくつかの理由

Sub button() 
Dim lastRow As Long 
lastRow = ThisWorkbook.Worksheets("Product Groups").Range("A4" & Rows.Count).End(xlUp).Row 


Dim ws As Worksheet 
Dim ws2 As Worksheet 
Dim range1 As Range, rng As Range 
'change Sheet1 to suit 
Set ws = ThisWorkbook.Worksheets("Database") 
Set ws2 = ThisWorkbook.Worksheets("Product Groups") 


Set rng = ws.Range("T7") 
Set range1 = ws2.Range("A1:A" & lastRow) 

With rng.Validation 
    .Delete 'delete previous validation 
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _ 
     Formula1:="='" & ws2.Name & "'!" & range1.Address 
End With 


End Sub 

lastRow = ThisWorkbook.Worksheets("Product Groups").Range("A4" & Rows.Count).End(xlUp).Row 

アプリケーション未定義または未定義のエラーオブジェクト

は、ここに私のコードです。

どこが間違っているのか教えてください。おかげ

+0

それを示して答えを使用

に与えられています).Range( "A4"&ThisWorkbook.Worksheets( "Product Groups")。Rows.Count).End(xlUp).Row' ...(2番目の 'ThisWorkbook.'は必要ないかもしれませんが、 。) – BruceWayne

+2

ほぼそうです。範囲( "A"&ThisWorkbook.Worksheets( "製品グループ")。Rows.count).End(xlUp).row' – user3598756

+0

@ user3598756私にそれを打ちなさい。 'Range(" A4 ")'を使って行4を定義してから、行を再定義しようとすることはできません。 'Range'のColumn A部分を使い、' .Rows.Count'を使って行部分を定義するだけです。 – SalvadorVayshun

答えて

0

ソリューションは、コメント、私は `LASTROW = ThisWorkbook.Worksheets(「製品グループ」試してみてください、あなたのコードのリファクタリング可能と一緒に再び

Option Explicit 

Sub button() 
    Dim range1 As Range 

    With ThisWorkbook.Worksheets("Product Groups") 
     Set range1 = .Range("A1", .Cells(.Rows.count, 1).End(xlUp)) 
    End With 

    With ThisWorkbook.Worksheets("Database").Range("T7").Validation 
     .Delete 'delete previous validation 
     .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="='Product Groups!" & range1.Address 
    End With 
End Sub 
+0

Princess.Bell、あなたはあなたの前の質問への回答にフィードバックを与える時間を見つけることもできます! – user3598756

関連する問題