如果可以的话,我想在下面提供一些帮助。
我正在2个工作簿之间工作,我希望从第一个工作簿中查找Cell(“ B6”)的值,该值恰好是第二个工作簿在B列中的一个日期。尽管似乎代码找到了设置为范围的日期为空。您能帮我看看我在做什么错。
我是VBA的新手,并且正在尝试通过在线搜索来简化生活。 预先谢谢你。
Sub Update_Forecast_2()
Dim myFile As String
Dim YourFolderPath As Variant
Dim FindString As Date
Dim newFile As String
FindString = CLng(Date)
Dim Rng As Range
YourFolderPath = "C:\Users\konstand\Desktop\Forecast"
ChDir YourFolderPath
myFile = Application.GetOpenFilename
If myFile = "False" Then Exit Sub
Workbooks.Open Filename:=myFile
newFile = Replace(myFile, YourFolderPath + "\", "")
Range("B6").Select
Workbooks("Forecast file.xlsm").Activate
Sheets("Forecast_Sort").Activate
Range("A1").FormulaR1C1 = myFile
Workbooks(newFile).Activate
Range("B6").Activate
FindString = Workbooks(newFile).Sheets("Forecast").Range("B6").Value
'MsgBox FindString
If Trim(FindString) <> "" Then
With Workbooks("Forecast file").Sheets("Forecast_Sort").Range("B:B")
Set Rng = .Find(What:=DateValue(FindString), _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
Rng.Select
End If
Workbooks("Forecast file.xlsm").Activate
End With
End If
End Sub
按照Erjon的要求,为了帮助您更多地了解我要执行的操作,我附上了2张图片,并做了一些解释。我希望我有所帮助,但不要让它变得更加混乱。
所以我有要查看更改的主文件
然后,我有了一个文件,如果不想更频繁地访问,我每周都要从中获取更新的值。请注意,此文件每次都有不同的名称,例如“ Wk09Update.xlsx”,“ Wk10Update.xlsx”,“ Wk11Update.xlsx”,.......
尽管在我从新文件开始复制H,I和J列的值并将其粘贴到新文件之日起进入新文件以将新值复制并粘贴到主文件之前, C,D和E列中的现有值。然后,我想转到新文件并将更新后的值从那里复制/粘贴到主文件上的H,I和J列中,这样我就可以看到每周更新。