【发布时间】:2020-11-03 12:23:33
【问题描述】:
我已经用谷歌搜索并为此苦苦挣扎了几个小时。
我有一个控制工作簿,它从不同数量的其他工作簿中提取数据(控制工作簿还创建其他工作簿并保存所述工作簿的名称和目录,以便以后可以调用它们)
这段代码就是问题所在。
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Declare_Sheets
Dim SearchresultROW
Dim Searchresult As String
Dim complexrow As Integer
Dim CurrSheet As Worksheet
Dim Stype As String
Dim startROW As Integer
Dim endROW As Integer, SearchCOL As Integer, OffROW As Integer
Dim PDATArange As Range, CDATArange As Range
Dim Dateyear, Datemonth, datetest As String
Stype = WSRD.Range("B11")
'Find complex to work with
complexrow = WSSS.Range("F7")
WSSS.Activate
SearchresultROW = Range(Cells(7, 15), Cells(complexrow, 15).Find(Callsheet).Address).Row
Searchresult = WSSS.Cells(SearchresultROW, 15).Offset(0, 1)
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
下面的代码是问题摘录
complexrow = WSSS.Range("F7")
WSSS.Activate
SearchresultROW = Range(Cells(7, 15), Cells(complexrow, 15).Find(Callsheet).Address).Row
Searchresult = WSSS.Cells(SearchresultROW, 15).Offset(0, 1)
第一个问题 我无法在不激活工作表的情况下让 find() 工作 - WSSS Declare_Sheets 在声明 WSSS 的开头运行,这适用于我的代码中的其他任何地方,但不适用于此 find()。
第二个问题 下面的代码编译并完成,但是 - 它没有返回正确的数据。
此代码调用启动宏
Cancel = True
Dim Calsheet As String
If Target.Column <> 1 Then Exit Sub
Calsheet = Target.Value
Call Call_Readings(Calsheet)
End Sub
目前有两种可能
我双击 Casper Tcomp 4。 Callsheet = "Casper Tcomp 4" - 哪个是正确的(双击的目标)
Complexrow = "9" - 哪个是正确的(这将随着新工作表的添加而增加)
SearchresultROW = "7" - 这是错误的,应该是 8
我尝试添加 LookAt:=xlWhole 和 LookIn:-xlValues,并没有改变任何东西
【问题讨论】:
-
Callsheet在哪里定义?在尝试访问属性等以避免错误之前,您应该检查您是否找到了一些东西。 -
谢谢,Callsheet被定义为一个字符串,在“Sub Call_Readings(Callsheet as string)”中,我忽略了上面第一行代码的粘贴,谢谢指出。跨度>