是否有可能使用列表框来更改工作表中的行的顺序? 我已经在网上search了大约一个小时没有ressults。 我正在使用以下代码的任务: Private Sub UserForm_Initialize() ListBox1.RowSource = "Sheet1!A1:A15" End Sub Option Explicit Const UP As Integer = -1 Const DOWN As Integer = 1 Private Sub SpinButton1_SpinUp() If Me.ListBox1.ListCount > 1 Then Call MoveListItem(UP, Me.ListBox1) End If End Sub Private Sub SpinButton1_SpinDown() If Me.ListBox1.ListCount > 1 Then Call MoveListItem(DOWN, Me.ListBox1) End If End Sub […]
我有一个dynamic命名的范围,返回一个列表(数组)的列表(数组),但没有分配,但一旦所有的值分配列表返回#N / A 公式(数组): = INDEX(EquipTable [Equip],MATCH(0,EquipTable [Flag],0),1):INDEX(EquipTable [Equip],MATCH(0,EquipTable [Flag],0)+ COUNTIF(EquipTable [Flag] )-1,1) 问题是,我正在使用这个名为Listbox.RowSource的Ranged,我找不到一个方法来检查命名范围的值,甚至检查它是否返回错误。 我用了: Application.WorksheetFunction.IsError(ActiveWorkbook.Names("UnassignedEquipment")) 但它总是返回假 我也用过: IsEmpty(ActiveWorkbook.Names("UnassignedEquipment")) 和 IsError(ActiveWorkbook.Names("UnassignedEquipment"))
好的,这里有一些事情我找不到解决办法。 我有2个列表框,ListBox1和listBox2加载。 ListBox1正在从一个特定的文件夹加载文件名,而ListBox2从这些文件加载特定的信息,当你点击每一个。 我这样做的方式是,当你点击左侧的文件时,文件被打开,一个特定的数据范围被复制到内存中,被转储到ListBox2中,并在文件closures后。 所有这些工作,但有一个问题。 到ListBox2复制/粘贴操作工作正常(字符完全从源复制),当我离开Excel工作簿打开,但当我试图复制/粘贴和closures源Excel文件时,我在ListBox2中得到非常奇怪的字符。 见下文。 我知道ListBox有32k项目的限制,但事实并非如此,复制的范围是200行。 这种行为发生在我用后台closuresexcel的时候 工作簿(工作簿)。closuresSaveChanges:= False 如果我注释掉上面的代码。 listbox2精美地显示。 我不明白为什么与打开文件的差异,因为在我closures文件之前已经将数据转储到ListBox2中。 这是一个内存问题?
嘿家伙,我想select“variables”列表框中的“行”和/或“列”列表框中的一些variables。 我知道我应该这样写: For irow = lbxVar.ListCount To 1 Step -1 If lbxVar.Selected(irow – 1) = True Then lbxColumn.AddItem lbxVar.List(irow – 1) lbxVar.RemoveItem (irow – 1) End If Next irow 我只是不明白为什么我不能写这样的代码? If lbxVar.ListIndex > -1 Then For irow = 0 To lbxVar.ListCount – 1 If lbxVar.Selected(irow) = True Then lbxColumn.AddItem lbxVar.List(irow) lbxVar.RemoveItem (irow) End If Next […]
x= range("A1:d100000").value For i = 1 To UBound(x, 1) Sk = x(i, 1) & "·" & x(i, 2) & "·" & x(i, 3) & "·" & x(i, 4) If InStr(x(i,4), "text") Then s = s & "~" & Sk Else End If Next i ListBox1.List = Split(Mid$(s, 2), "~") 代码把匹配结果放到(ActiveX)listbox.list 1列中 如何根据SK列数将匹配结果放到listbox.list中,如此 if x(i, 1) […]
我正试图让这个在excel用户表单中工作。 在列表框中select一个值时,它的变化事件被调用两次。 即使放置了旗帜,也无法绕过它。 不知道为什么更改事件被调用两次。 谷歌search之后,像控制得到焦点的变化事件被称为接缝。 下面是代码。 Public eventsOFF As Boolean Public ctr As Integer Private Sub ListBox1_Change() Dim tmp As String, sel As Variant, s As Variant If eventsOFF Then Exit Sub eventsOFF = True For i = 0 To ListBox1.ListCount – 1 If ListBox1.Selected(i) Then tmp = tmp & ListBox1.List(i) & "," Next ListBox1.Clear […]
我有一个工作表中的列表框,它通过点击一些指定的单元格来激活。 我想通过写在这个单元格上过滤我的列表框。 例如,如果我在该单元格中写入“asd”,则列表框应该实时返回以“asd”开头的行。 Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Value <> "" Then With ListBox1 For i = .ListCount – 1 To 0 Step -1 If InStr(1, LCase(.List(i, 0)), LCase(Target.Value)) = 0 And _ InStr(1, LCase(.List(i, 1)), LCase(Target.Value)) = 0 And _ InStr(1, LCase(.List(i, 2)), LCase(Target.Value)) = 0 And _ […]
有人可以告诉我为什么这段代码不会读代码中的第一个。 我试图删除我手动select的列表上的所有项目,这是工作,但之后,我希望它select所有我可以写一个工作表的洞列表,但不pipe我做什么我可以'在我从列表中删除项目后,将其全部选中。 事实上,它不会读取第一个下一个我怎么知道,因为如果我设置清除function之前,它将清除工作表,但不是如果我把它放在下一个代码之后。 Private Sub CommandButton2_Click() For listIndexCount = 0 To ListBox1.ListCount If listIndexCount >= ListBox1.ListCount Then Exit Sub End If If ListBox1.Selected(listIndexCount) Then ListBox1.RemoveItem (listIndexCount) listIndexCount = listIndexCount – 1 End If Next listIndexCount Sheets("Courses_calc").Cells.Clear For i = 0 To ListBox1.ListCount – 1 ListBox1.Selected(i) = True Next i End Sub
我试图通过多个工作表循环,并find超过一定的阈值的值。 如果find这些值,则应将包含超过阈值的整行复制到新创build的“摘要”表格中。 我的UserForm到目前为止是这样的: 而我的代码是这样的: Option Explicit Private Sub UserForm_Initialize() Dim N As Long For N = 1 To ActiveWorkbook.Sheets.Count Sheets_txt.AddItem ActiveWorkbook.Sheets(N).Name Next N End Sub Private Sub CommandButton1_Click() Dim SelectedItems As String Dim column As String Dim WS As Worksheet Dim i As Long, j As Long, lastRow As Long, k As Long Dim sh […]
我有一个列表框,我设法将Excel工作表绑定到列表框(在Internet上研究数小时之后)。 现在我需要从表单中读取值到列表框中,但无法find任何合适的解决scheme。 这是我迄今为止所做的: private void LoadExcelSheet(string path, int sheet){ _Application excel = new Excel.Application(); Workbook wb; Worksheet ws; int row = 0; int col = 0; wb = excel.Workbooks.Open(path); ws = wb.Worksheets[sheet]; for (row = 1; row < 10; row++){ for (col = 1; col < 6; col++){ listBox1.Items.Add(ws.Cells[row, col].Value2); } } } //—————— end […]