【发布时间】:2021-10-19 16:55:39
【问题描述】:
我已经解决了几个类似的问题,希望能解决我的答案,但我一直在努力将具体问题与我的场景联系起来。
我有一个工作表,其中有一个打开用户表单的按钮 - 此代码在标准模块中运行。一旦用户表单打开,我想用来自可能随每个电子表格而变化的单元格范围内的数据填充一个列表框。
我知道我已经成功地抓取了我的动态单元格范围,因为我已经能够使用我的代码选择范围。这是我的动态范围代码:
Private Sub UserForm_Initialize()
Dim xrange, newStartCell As Range
Dim last_col As Integer
Dim rng As Range
Me.StartUpPosition = 0
Me.Top = 300
Me.Left = 475
' find cell with row header "cygnet code"
Set xrange = Cells.Find(What:="cygnet code", After:=ActiveCell, LookIn:=xlFormulas2, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Set newStartCell = xrange.Offset(, 1)
'This line gets the last column
last_col = Cells(4, Columns.Count).End(xlToLeft).Column
With ThisWorkbook.Sheets("C&E")
Set rng = .Range(.Cells(newStartCell.Row, newStartCell.Column), .Cells(newStartCell.Row, last_col))
End With
With Me.ListBox1
.List = rng.Value
End With
End Sub
我不知道它是否与在初始化函数中运行此代码有关,或者我抓取范围的方式与列表框不兼容?在任何一种情况下,代码运行时都不会出现“错误”,但列表框保持空白(它会添加一个空白行)。
这是我用来测试选择工具工作的代码:
With ThisWorkbook.Sheets("C&E")
Set rng = .Range(.Cells(newStartCell.Row, newStartCell.Column), .Cells(newStartCell.Row, last_col))
.Range(.Cells(newStartCell.Row, newStartCell.Column), .Cells(newStartCell.Row, last_col)).Select
End With
提前感谢您的帮助!
【问题讨论】: