Excel 无法使用查找和偏移功能选择范围

Excel 无法使用查找和偏移功能选择范围,excel,vba,select,offset,Excel,Vba,Select,Offset,我的目标是将行从工作表(“VBA”)复制到工作表(“COLUMBIA-TAKEDOWN”)中的特定位置。该位置是包含“prospects”的单元的偏移量(1,1)。我的代码的第一部分工作得很好,但是我的问题开始于选择和编辑一行[Prospect.Offset(13,-1).Select]。它似乎忽略了这一行代码,因为后面的格式化行没有发生。它不会抛出错误消息 我知道我选择的行不正确,因此无法更改格式,但我不知道如何更正此问题 Application.ScreenUpdating = False

我的目标是将行从工作表(“VBA”)复制到工作表(“COLUMBIA-TAKEDOWN”)中的特定位置。该位置是包含“prospects”的单元的偏移量(1,1)。我的代码的第一部分工作得很好,但是我的问题开始于选择和编辑一行[Prospect.Offset(13,-1).Select]。它似乎忽略了这一行代码,因为后面的格式化行没有发生。它不会抛出错误消息

我知道我选择的行不正确,因此无法更改格式,但我不知道如何更正此问题

Application.ScreenUpdating = False

Dim Prospect As Range
Set Prospect = Sheets("COLUMBIA-TAKEDOWN").Cells.Find(what:="P R O S P E C T S")

Sheets("VBA").Visible = True
Sheets("VBA").Rows("13:25").Copy
Prospect.Offset(1, -1).Insert shift:=xlDown
Prospect.Offset(13, -1).Select
With Selection.Interior
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorLight1
    .TintAndShade = 0
    .PatternTintAndShade = 0
End With
Prospects.Offset(1, -1).Select
Sheets("VBA").Visible = False

End Sub

问题是您试图在
单元格中
。。。它们的大小不同,因此存在错误

试试这个。。。可能需要更多思考,但我刚刚重用了你的代码

Sub test()

Application.ScreenUpdating = False

Dim wb As Workbook: Set wb = ThisWorkbook
Dim sht As Worksheet: Set sht = wb.Sheets("Sheet1")
Dim ProspectRow As Long: ProspectRow = sht.Cells.Find(what:="P R O S P E C T S").Row + 1

wb.Sheets("VBA").Rows("13:25").Copy
sht.Rows(ProspectRow).Insert Shift:=xlDown

With sht.Rows(ProspectRow + 13).Interior
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorLight1
    .TintAndShade = 0
    .PatternTintAndShade = 0
End With

Application.ScreenUpdating = True

End Sub
编辑:修改了批评家的代码


EDIT2:添加了格式…

问题是您试图在
单元格中的
。。。它们的大小不同,因此存在错误

试试这个。。。可能需要更多思考,但我刚刚重用了你的代码

Sub test()

Application.ScreenUpdating = False

Dim wb As Workbook: Set wb = ThisWorkbook
Dim sht As Worksheet: Set sht = wb.Sheets("Sheet1")
Dim ProspectRow As Long: ProspectRow = sht.Cells.Find(what:="P R O S P E C T S").Row + 1

wb.Sheets("VBA").Rows("13:25").Copy
sht.Rows(ProspectRow).Insert Shift:=xlDown

With sht.Rows(ProspectRow + 13).Interior
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorLight1
    .TintAndShade = 0
    .PatternTintAndShade = 0
End With

Application.ScreenUpdating = True

End Sub
编辑:修改了批评家的代码



EDIT2:添加了格式…

我想可能是“Find()”函数,但我不知道如何修复它。它不是
.Find
函数。我刚刚对它进行了一个简单的测试。这也不是我之前认为的
.Prospect
,因为我刚刚测试了它。VBA工作表是否已锁定?插入件是否具有该偏移量,它们的大小不同。请同时发布您希望代码执行的操作以及前后的图片。到目前为止,很遗憾,无法单独从代码中确定所需的行为。从代码中看,您似乎正在尝试插入12行,而不仅仅是一行。。。查看下面我的答案,看看它是否满足您的需要,如果不满足,请根据@Rawrplus建议澄清您试图实现的目标。我认为可能是“Find()”函数,但我不知道如何修复它。它不是
。Find
函数。我刚刚对它进行了一个简单的测试。这也不是我之前认为的
.Prospect
,因为我刚刚测试了它。VBA工作表是否已锁定?插入件是否具有该偏移量,它们的大小不同。请同时发布您希望代码执行的操作以及前后的图片。到目前为止,很遗憾,无法单独从代码中确定所需的行为。从代码中看,您似乎正在尝试插入12行,而不仅仅是一行。。。请看下面我的答案,看看它是否满足您的需求,如果不满足,请根据@Rawrplus建议澄清您试图实现的目标。您的代码引入了一些糟糕的编程实践。更不用说有一些逻辑错误,例如
屏幕更新
False
Select
ing,这些错误不会产生任何效果。此外,您根本不应该使用
Select
,因为这很容易导致意外的行为,一般来说,我会说这个问题非常不清楚,不可能正确回答。SO的目标不是将坏代码纠正为功能代码,而是将坏代码纠正为好代码,并就OP应该如何以及为什么改进它提供建议@谢谢你。。。我在看同样的东西。。。我不喜欢它的外观,只是重写了一下,希望更像你。我试着在功能代码方面提供帮助,并在任何地方提供建议。。。但是用一个非常简单的google/SO搜索,这个问题就没有必要了。。。然而我们到了。这更好了,但遗憾的是,我仍然不知道这是否是正确的答案,因为OP需要为他的问题添加更多细节。@B-Rye查看更新的代码。。。这对你有用吗?您仍在尝试通过选择单个单元格来选择整行。。。至少我从您的描述和代码中了解到了这一点。您的代码引入了一些糟糕的编程实践。更不用说有一些逻辑错误,例如
屏幕更新
False
Select
ing,这些错误不会产生任何效果。此外,您根本不应该使用
Select
,因为这很容易导致意外的行为,一般来说,我会说这个问题非常不清楚,不可能正确回答。SO的目标不是将坏代码纠正为功能代码,而是将坏代码纠正为好代码,并就OP应该如何以及为什么改进它提供建议@谢谢你。。。我在看同样的东西。。。我不喜欢它的外观,只是重写了一下,希望更像你。我试着在功能代码方面提供帮助,并在任何地方提供建议。。。但是用一个非常简单的google/SO搜索,这个问题就没有必要了。。。然而我们到了。这更好了,但遗憾的是,我仍然不知道这是否是正确的答案,因为OP需要为他的问题添加更多细节。@B-Rye查看更新的代码。。。这对你有用吗?您仍在尝试通过选择单个单元格来选择整行。。。至少我从你的描述和代码中了解到了这一点。