2017-03-20 8 views
-2

編集:私はあまりにも複雑にしていたと思います。以下のコードは私が望むことをしますが、object'_Global 'のメソッド' Range 'がエラーに失敗しました。どのようにそれを修正するための任意のアイデア?VBA:一致条件に基づいて別のワークシートに値を投稿

Sub Test() 

Dim var1 As String 
Dim var3 As Variant 
Dim var4 As Integer 

var1 = Worksheets("wage run").Range("D1") 
var3 = Worksheets("with Changes").Range("A1:A138") 

var4 = Application.WorksheetFunction.Match(var1, var3, 0) 



Select Case Range("b7").HasFormula 
Case Is = False 
    Sheets("wage run").Select 
    Range("B7").Copy 
    Sheets("With Changes").Select 
    ***Range(Cells(var4, 5)).Select*** 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 
End Select 

End Sub 
+0

正確に何をしたいですか?あなたが簡単に助けることができるように例を投稿してください – Ibo

+0

申し訳ありません。私はセルb7を取って、 "賃金ラン"タブで選択された値に基づいて別のタブの対応する行に貼り付けますが、それは値であり式ではない場合のみです。 –

+1

'Worksheet.Index'はプロパティであり、メソッドではなく、' Range'ではなく 'Long'を返します。私はおそらく '.WorksheetFunction'をマークした行で忘れてしまったと思います。 – Comintern

答えて

0

私は別の投稿から回答を得ました。あなたのご意見ありがとうございました!

Sub tgr() 

Dim rngFound As Range 
Dim strFirst As String 
Dim strID As String 

strID = Worksheets("wage run").Range("D1") 

Set rngFound = Worksheets("with changes").Columns("A").Find(strID, Worksheets("with changes").Cells(Rows.Count, "A"), xlValues, xlWhole) 
If Not rngFound Is Nothing Then 
    strFirst = rngFound.Address 
     End If 

Select Case Range("b7").HasFormula 
Case Is = False 
    Sheets("wage run").Select 
    Range("B7").Copy 
    Sheets("With Changes").Select 
    Cells(rngFound.Row, 5).Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 
    Sheets("wage run").Select 
End Select 


Set rngFound = Columns("A").Find(strID, rngFound, xlValues, xlWhole) 

Set rngFound = Nothing 

End Sub 
関連する問題