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