Excel VBA使用偏移量为另一工作表上的另一个单元格赋值
我是VBA新手。我的目标是创建一个宏,在“计算机语言”部分(操作系统部分之前)添加一个新列。它将其添加到活动工作表上,然后还有另一个称为“筛选”的工作表,用于筛选结果,需要将其添加到同一部分(与主工作表不完全在同一位置) 到目前为止,它在两个工作表中都正确添加了列。我只需要插入值。它将其正确插入主工作表,但无法在“筛选”工作表中输入值 有人能告诉我为什么我的代码失败了吗 错误438 这可能真的很简单。不过,我这周只做了一次编程Excel VBA使用偏移量为另一工作表上的另一个单元格赋值,excel,vba,Excel,Vba,我是VBA新手。我的目标是创建一个宏,在“计算机语言”部分(操作系统部分之前)添加一个新列。它将其添加到活动工作表上,然后还有另一个称为“筛选”的工作表,用于筛选结果,需要将其添加到同一部分(与主工作表不完全在同一位置) 到目前为止,它在两个工作表中都正确添加了列。我只需要插入值。它将其正确插入主工作表,但无法在“筛选”工作表中输入值 有人能告诉我为什么我的代码失败了吗 错误438 这可能真的很简单。不过,我这周只做了一次编程 Sub newComputerLanguage() newCL =
Sub newComputerLanguage()
newCL = InputBox("New Computer Language Name")
Dim CLheaderFiltering As Range
Dim OSheaderFiltering As Range
Dim CLheader As Range
Dim OSheader As Range
Set CLheaderFiltering = Worksheets("Filtering").Range("O4:HC4").Find("Computer Languages")
Set OSheaderFiltering = Worksheets("Filtering").Range("O4:HC4").Find("Operating Systems")
Set CLheader = Range("Q5:HC5").Find("Computer Languages")
Set OSheader = Range("Q5:HC5").Find("Operating Systems")
If OSheader Is Nothing Then
MsgBox "Operating Systems column was not found."
Exit Sub
Else
Worksheets("Filtering").Columns(OSheaderFiltering.Column).Offset(, 0).Resize(, 1).Insert
Columns(OSheader.Column).Offset(, 0).Resize(, 1).Insert
OSheader.Offset(, -1).Value = newCL
Worksheets("Filtering").OSheaderFiltering.Offset(, -1).Value = newCL 'FAILS HERE!
OSheader.Offset(1, -1).Select
End If
End Sub
我认为只需添加工作表就可以了。您已将
设置为工作表(“筛选”)工作表上的一个范围。您不需要重述工作表(“筛选”)OSheaderFiltering.Offset(,-1).Value=newCL
应该足够了。为什么在语句D中有.Resize(,1)和Insert?此外,您已经有一个对所选列的引用-此代码相当于:OSheaderFiltering.entireclumn.Insert
,它将在其前面插入一个新列。我认为语句工作表(“筛选”).OSheaderFiltering….
不起作用OSHeaderFiltering
本身就是一个变量,它不是工作表的属性。这很可能就是为什么会出现错误438。正如我所看到的,@Jeeped已经指出的。解决:谢谢Jeeped。我不知道已经定好了。至于为什么它的大小是为约翰诺委员会的问题,我不知道。我找到了做我需要的事情的代码,那就是在特定单元格之间添加一列,所以我使用了它。