.将数据复制到列表框时的偏移量-Excel VBA
我可以使用下面的代码将单元格值复制到多列listbox1。问题是,只有当且仅当Sheet3处于活动状态时,它才起作用,否则,我在Listbox1中没有任何内容 我尝试了.将数据复制到列表框时的偏移量-Excel VBA,excel,vba,Excel,Vba,我可以使用下面的代码将单元格值复制到多列listbox1。问题是,只有当且仅当Sheet3处于活动状态时,它才起作用,否则,我在Listbox1中没有任何内容 我尝试了Range.cells(cell.offset…,但也不起作用。任何帮助都将不胜感激 With Me.ListBox1 .Clear .ColumnCount = 6 .ColumnWidths = "20;60;260;80;50;50" For Each cell In ActiveWorkbook.Sheets(Shee
Range.cells(cell.offset…
,但也不起作用。任何帮助都将不胜感激
With Me.ListBox1
.Clear
.ColumnCount = 6
.ColumnWidths = "20;60;260;80;50;50"
For Each cell In ActiveWorkbook.Sheets(Sheet3.Name).Range(Cells(13, cbPartList.ListIndex + 7), Cells(txIndex.text, cbPartList.ListIndex + 7))
If cell = "O" Or cell = "o" Then
.AddItem cell
.List(.ListCount - 1, 1) = cell.Offset(0, 1)
.List(.ListCount - 1, 2) = cell.Offset(0, 4)
.List(.ListCount - 1, 3) = cell.Offset(0, 2)
.List(.ListCount - 1, 4) = cell.Offset(0, 7)
.List(.ListCount - 1, 5) = cell.Offset(0, 9)
End If
Next
End With
这段代码有几个问题。线路
For Each cell In ActiveWorkbook.Sheets(Sheet3.Name).Range(Cells(13, cbPartList.ListIndex + 7), Cells(txIndex.text, cbPartList.ListIndex + 7))
细分如下
active工作簿中的Sheet3
。Sheets(Sheet3.Name)1是工作簿中包含正在执行的VBa代码的工作表的代码名。它可能对
ActiveWorkbook有效,也可能无效`单元格(…)
指的是活动工作簿中的单元格
Activeworkbook
是包含代码的书籍,并且Sheet3
处于活动状态时,这才起作用
你应该
声明并设置工作簿变量
Dim wb as Workbook
设置对特定工作簿的引用。这可能是活动的书本
Set wb = ActiveWorkbook
或特定的工作簿
Set wb = Workbooks("Name of Workbook")
然后声明一个工作表变量,并将其设置为特定的工作表
Dim ws as Worksheet
Set ws = wb.WorkSheets("SheetName")
(如果您特别想使用CodeName
s,则会有点不同)
声明循环时,请使用
Dim Cell as Range
With ws
For each Cell in .Range(.Cells(...), .Cells(...))
请注意
。这些是指带有块对象的当前,我有一个解决方法,通过激活Sheet3,然后移回我正在处理的工作表(不是Sheet3)@Alireza-如果我在不是Sheet3的工作表上运行代码,则错误为运行时错误“1004”,应用程序定义或对象定义的错误“在代码的哪一行?”ActiveWorkbook.Sheets(Sheet3.Name)。Range(单元格(13,cbPartList.ListIndex+7),单元格(txIndex.text,cbPartList.ListIndex+7))-只要我在Sheet3上运行代码就可以了-这对我来说有点奇怪:Dim Sheet:Set Sheet=ActiveWorkbook.Sheets(Sheet3.Name):对于sheet.Range(sheet.Cells(13,cbPartList.ListIndex+7),sheet.Cells(txIndex.text,cbPartList.ListIndex+7))中的每个单元格,非常感谢,特别是指出了我的错误之处。:)这比我在Sheet3和另一个sheet之间切换的解决方法要好得多。每当您使用多张工作表时,我可以添加以下内容:,尝试始终指向目标工作表,并最终使用.Address
命令寻址单元格/区域