- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 vba 编码非常陌生,因为昨天才开始学习它,我对我在这里做错了什么有疑问。
我正在尝试编写一段代码,在某个范围内查找某个单词,检查相邻单元格上的值,在另一个范围内查找这些值,如果找不到,则执行一些操作,然后返回到寻找下一个匹配的第一个范围。
在插入第二个 .find 之前,我设法使循环正常工作,但是一旦添加它,它就会破坏循环吗?它给了我“运行时错误 91:未设置对象变量或 block 变量”。
我尝试从 Range
更改变量的数据类型至String
和来自 String
至Range
我已经尝试过Set variable =
只是variable =
对于变量
我已经发布了第二个.Find()
到达循环之前的变量
我移动了很多行
再说一遍,我对此很陌生,如果有人可以帮助我,我将非常感激
有问题的行是 Loop While cred.Address <> firstcred
它在第一个子例程中工作正常,但在第二个子例程中返回错误
sub subname1()
Dim credeb As Range
Dim cred As Range
Dim firstcred As String
Dim nome1 As Range
Dim data1 As Range
Set credeb = Range("credeb")
Set cred = credeb.find("crédito")
If cred Is Nothing Then
GoTo Final
Else
firstcred = cred.Address
Do
cred.Activate
Set nome1 = cred.Offset(0, -2)
Set data1 = cred.Offset(0, -1)
nome1.Interior.Color = vbYellow
data1.Interior.Color = vbYellow
Set cred = credeb.FindNext(cred)
Loop While cred.Address <> firstcred
End If
Final:
End Sub
______________________
Sub subname2()
Dim credeb As Range
Dim cred As Range
Dim firstcred As String
Dim nome1 As Range
Dim data1 As Range
Dim nome2 As Range
Dim nome11 As Range
Set credeb = Range("credeb") 'nome da tabela credito ou debito
Set cred = credeb.find("crédito")
Set nome2 = Range("nome2") 'nome da tabela de nomes do credito
If cred Is Nothing Then
GoTo Final
Else
firstcred = cred.Address
Do
cred.Activate
Set nome1 = cred.Offset(0, -2)
Set data1 = cred.Offset(0, -1)
Set nome11 = nome2.find(nome1)
If nome11 Is Nothing Then
nome1.Interior.Color = vbYellow
data1.Interior.Color = vbYellow
Set nome1 = Nothing
Set data1 = Nothing
Set nome11 = Nothing
End If
Set cred = credeb.FindNext(cred)
Loop While cred.Address <> firstcred
End If
Final:
End Sub
以上代码返回运行时错误“91”:未设置对象变量或 With block 变量。如何修复此代码以使其正常执行?
最佳答案
在循环中运行 Find 可能会使主代码难以维护,如果您需要在多个位置执行此操作,那么最好的方法是将其分解为单独的函数。
例如。你可以这样做:
sub subname1()
Dim hits as Collection, hit
Set hits = FindAll(Range("credeb"), "crédito")
if hits.Count > 0 then
for each hit in hits
hit.Offset(0, -2).Resize(1,2).Interior.Color = vbYellow
next hit
end if
End Sub
查找所有匹配项的函数:
'return all cells in "rng" which match "val", as a Collection
' (edit the Find method parameters as needed)
Public Function FindAll(rng As Range, val As String) As Collection
Dim rv As New Collection, f As Range
Dim addr As String
'best to be explicit about exactly what you want Find to do...
Set f = rng.Find(what:=val, after:=rng.Cells(rng.Cells.Count), _
LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False)
If Not f Is Nothing Then addr = f.Address()
Do Until f Is Nothing
rv.Add f
Set f = rng.FindNext(after:=f)
If f.Address() = addr Then Exit Do
Loop
Set FindAll = rv
End Function
关于excel - 嵌套 IF 语句后循环不再起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56193118/
我最近更新了 ADT 插件,我的整个 Eclipse-Android 构建系统都停止工作了。从那以后,我尝试了我在互联网上可以找到的所有关于如何解决这个问题的方法。徒然。如果有人有确定的方法来解决此问
我已经知道有类似的话题,但对我来说没有任何帮助...... 这里是信息: 该应用程序始终在模拟器和设备上运行。我最近将该项目重命名为另一个名称。仍然工作得很好。今天我意识到它没有更改文件夹名称,然后它
在装有El Capitan的MacMini上,我无法再进行冲泡了。我收到以下错误: /usr/local/Library/Homebrew/config.rb:34:in `initialize':
是的,所以我不知道发生了什么。我一直在编写一个 AJAX 评论脚本,并且它可以工作,但它不再工作了。我从备份中恢复了它,以防万一我改变了任何东西,但没有运气。它转到表单的“操作”而不是 jQuery,
请原谅我的无能...我正在尝试在全局 var 阶段不再未定义后使用 Proxy 执行一些代码。这是我天真的尝试: ``` var stage = undefined let myObj; let st
我对 segues 了解不多,但我已经开始工作了..但突然间它不再工作了...... 我的代码似乎可以工作,但没有发生 segue: NSLog(@"login started"); if ([use
我已将以下重写规则添加到我的 web.config 中。它运行良好,阻止了所有提及的推荐垃圾邮件站点。然而,今天我突然注意到 social-buttons.com 突然出现在我的 Google Ana
在 C++ 中,可以在翻译单元中使用 static 关键字来影响符号(变量或函数声明)的可见性。 在 n3092 中,这已被弃用: Annex D.2 [depr.static] The use of
升级到 com.crashlytics.sdk.android:crashlytics:2.7.1@aar 后(从 2.6.8 开始),我无法再在 Firebase 应用中禁用 Crashlytics
您好,我遇到了一些障碍,我一直在为我的应用程序重新设计菜单导航。我设法做到了。但现在我的应用程序的一项功能已决定停止运行。 想法是你摇动你的手机,它会随机选择一张图片,与应用程序分开的代码工作正常,就
我有一行(容器)包含三个元素,我想水平显示它们之间的间距相等(并且行的左侧或右侧没有空格)。我正在使用带有 justify-content:space-between 的 flexbox。 这是在 F
直到最近,我才能够在 Windows 上使用 python 3.6.7 时安装 tensorflow 1.5.0 包。现在我不能,从下面的“来自版本”的消息来看,似乎根本没有可用的 tensorflo
不确定是否与最近的更新有关,但我突然无法在 Android Studio 编辑器中获得单行间距。如果我尝试将它更改为 1,它让我设置它,但当我按下“应用”时,它会迅速恢复为 1.5。用不同的字体试过,
我遵循了有关如何在 macOS 上安装 pip 的在线说明(例如 this、this 和 this)。 我看起来很简单,但它不适合我。 我的 python --version 是 2.7.10。 当我
Due to rounding errors, most floating-point numbers end up being slightly imprecise. https://www.flo
我试图让用户从他们在 Android 上的库中选择一张图片。但是当我使用 PictureChooser 插件时,它似乎不再起作用了 我看到这段代码可以工作,但现在不行了,我也不知道为什么。
自 .NET 4.5 起,Exception.HResult 的 setter/getter 现在是 public,但它曾经是 protected。 来自 MSDN: Starting with th
今天去处理一个较旧的 Python2.7 AppEngine 标准项目,但我似乎无法让端点工作。我下载了示例代码,看看我的项目是否是罪魁祸首,但该示例也不起作用。 https://cloud.goog
我是一名优秀的程序员,十分优秀!