我有3個文件複雜如果VBA的pro's
什麼,我需要做的(這必須與VBA做擅長因爲it's一個更大的宏的一部分)是看A列中文檔A和文檔B中匹配的每個實例列AI如果需要檢查兩個文檔的列B中的值是否爲「rf」,則需要檢查工作簿A的列C中的值是否爲>列C.
如果這一切都是真的,我想將工作簿A列A的值發佈到同一單元格地址中的工作簿C列C中。
我有下面的代碼,但它是在第一交叉循環,上面寫着「法‘相交’對象返回錯誤信息「_global失敗。任何想法,爲什麼發生這種情況?
Public Sub RFErrorProof()
Dim input1 As String
Dim input2 As String
Dim rCell As Range
Dim rFound As Range
Dim rNext As Range
Input3 = "ReportCompare.xls"
input1 = Workbooks(Input3).Worksheets("Sheet4").Range("A4").Value
input2 = Workbooks(Input3).Worksheets("Sheet4").Range("A3").Value
'Loop through column A in doc A
For Each rCell In Intersect(Workbooks(input2).Worksheets("LocalesMallContratos").UsedRange.Columns(2), Workbooks(input1).Worksheets("LocalesMallContratos").UsedRange.Columns(2)).Cells
'Skip cells where column B is not RF
If rCell.Offset(0, 3).Value = "RF" Then
'See if that exists in doc B
Set rFound = Nothing
Set rFound = Workbooks(input1).Columns(2).Find(rCell.Value, , xlValues, xlWhole)
'If it's in doc B
If Not rFound Is Nothing Then
'If column B doc B is RF and doc A is greater than doc B, then write it
If rFound.Offset(0, 3).Value = "RF" Then
If rCell.Offset(0, 14).Value > rFound.Offset(0, 14).Value Then
Set rNext = Workbooks(Input3).Cells(Workbooks(Input3).Sheets("sheet1").Rows.Count, 1).End(xlUp).Offset(1, 0)
rNext.Value = rCell.Value
End If
Else
'If column B doc B is not RF, write it
Set rNext = Workbooks(Input3).Cells(Workbooks(Input3).Sheets("sheet1").Rows.Count, 1).End(xlUp).Offset(1, 0)
rNext.Value = rCell.Value
End If
End If
End If
Next rCell
End Sub
如果你要downvote我請解釋爲什麼這樣我就可以改變什麼,我做錯了 – 2013-05-13 12:08:37
我懷疑那是因爲你沒有做你自己的任何工作。爲人寫代碼不是在這裏完成,而是幫助他們。特別是當你的問題似乎已經以類似的方式完成之後,他會有足夠的空間。 – glh 2013-05-13 12:50:56
@glh謝謝你,這是有道理的...我省略了我的代碼,因爲它給了我錯誤,但我會盡快發佈(我現在正在工作,所以可能需要一些時間) – 2013-05-13 13:02:06