我有一个工作表“ Sheet1”,数据的范围从“ A:R”开始,随着输入新的条目,行不断增加。对于每个条目,行的范围都不同,因此“列A”中的行被重复,因此它在数据透视表中显示得很好。现在要检查最后一个条目是否已粘贴,检查的一种方法是按“ Cltr + Down”键。我在用户窗体中有一个列表框,用于填充最后输入的条目。但它仅显示1行,即最后一行。如何显示该特定条目是否假定有5行?
我有这段代码,显示了输入的最后一行。我知道有一个主要的块缺少定义范围。我只是不知道该怎么做。请帮忙。 这是数据库的屏幕快照,我需要从该屏幕快照中填充用户窗体中的列表框。
这是当我单击“ CommandButton1”时带有ListBox的用户窗体的屏幕截图
Screenshot of Userform when 'CommandButton1' is clicked
Private Sub CommandButton1_Click()
Dim Rng As Range
Dim lr As Long
Dim x(1 To 2, 1 To 18), y As Long
With Worksheets("Sheet1")
lr = .Cells(.Rows.Count, 1).End(xlUp).Row
UserForm1.ListBox1.ColumnCount = 18
For y = 1 To 18
x(1, y) = .Cells(1, y)
x(2, y) = .Cells(lr, y)
Next y
UserForm1.ListBox1.List = x
End With
UserForm1.Show
End Sub
我希望025-GRACE PHILLIPS(来自数据库)的记录显示在ListBox上,以后在添加新条目时,它应该显示输入的新条目
答案 0 :(得分:0)
我会那样做
选项1 。您可以使用CurrentRegion获取范围。我不确定这是否对您有用。
Private Sub CommandButton1_Click()
Dim rg As Range
Set rg = Range("A1").CurrentRegion
ListBox1.List = rg.Value
End Sub
选项2 ,或者像确定已发布代码一样确定最后一行并使用
Private Sub CommandButton1_Click()
Dim rg As Range
Dim lr As Long
lr = Cells(Rows.Count, 1).End(xlUp).Row
Set rg = Range("A1:R" & lr)
ListBox1.List = rg.Value
End SUb
请根据需要添加工作表和用户表单参考
更新基于以下内容对选项2 中的rg的注释使用
Set rg = Range("A" & lr & ":R" & lr)
更新2 我假设要添加到列表框中的行由包含S.L.No.的第一列标识。
Private Sub CommandButton2_Click()
Dim rg As Range, rg1 As Range
Dim lr As Long
lr = Cells(Rows.Count, 1).End(xlUp).Row
Set rg = Range("A1" & ":R" & lr)
rg.AutoFilter Field:=1, Criteria1:=rg.Cells(lr, 1).Value
Set rg1 = rg.SpecialCells(xlCellTypeVisible)
' Assumption is the newly added rows are in one and therefore in the last area
Set rg1 = rg1.Areas(rg1.Areas.Count)
ListBox1.ColumnCount = rg.Columns.Count
ListBox1.List = rg1.Value
rg.AutoFilter
End Sub
答案 1 :(得分:0)
让我们通过使用ADODB.recordset尝试另一种方法
import { Observable, ObjectUnsubscribedError } from "rxjs";
import { take } from 'rxjs/operators';
...
public membersListRef: AngularFirestoreCollection<any>;
public membersList$: Observable < any []>;
public membersList = {} as any;
public membersArray: any[];
...
this.membersArray = [];
this.membersListRef = this.firestore.collection(`/userProfile/${this.groupNumber}/membersList`);
this.membersList$ = this.membersListRef.valueChanges();
...
this.membersList$.take(1).subscribe((members) => {
members.forEach(mdoc=>{
console.log("id: , name:" + mdoc.id, mdoc.name);
return this.membersArray.push({id: mdoc.id, name:mdoc.name })
})
});