首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用combobox Excel时出错70‘

使用combobox Excel时出错70‘
EN

Stack Overflow用户
提问于 2022-03-05 19:42:08
回答 1查看 67关注 0票数 1

我对此非常陌生,我试图制作一个VBA程序,根据您输入的条件找到一行,但是错误“70”,权限被拒绝

有一条老线索让我发现了这个问题,这里是:Old thread with the begining of my problem

这个问题是从填充组合框时出错开始的,如果有人知道锄头来解决这个问题,请帮助我,我对这件事很迷茫。

提前感谢

这是完整的代码:

代码语言:javascript
运行
复制
Private Sub CheckBox10_Click()

End Sub

Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = Null Then
TextBox1.Enabled = False
Else
TextBox1.Enabled = True
End If
End Sub

Private Sub CommandButton1_Click()

End Sub

Private Sub ListBox1_Click()

End Sub

Private Sub OptionButton1_Click()

End Sub

Private Sub OptionButton2_Click()

End Sub

Private Sub TabStrip1_Change()
Call UpdateRevenue
End Sub

Private Sub ListBox2_Click()

End Sub

Private Sub MultiPage1_Change()

End Sub

Private Sub TextBox1_Change()

NumeroDatos = Hoja1.Range("A" & Rows.Count).End(xlUp).Row
Hoja1.AutoFilterMode = False
Me.Lista = Clear
Me.Lista.RowSource = "'Hoja1'!TablaPrincipal"

For fila = 4 To NumeroDatos



'-----------------------------
'----variables de valores-----
'-----------------------------
link = Hoja1.Cells(fila, 1).Value
descrip = Hoja1.Cells(fila, 2).Value
informe = Hoja1.Cells(fila, 3).Value
fecha = Hoja1.Cells(fila, 4).Value
comuna = Hoja1.Cells(fila, 5).Value
sector = Hoja1.Cells(fila, 6).Value
calle = Hoja1.Cells(fila, 7).Value
tipo = Hoja1.Cells(fila, 8).Value
superficie = Hoja1.Cells(fila, 9).Value
valorUF = Hoja1.Cells(fila, 10).Value
'-----------------------------
'----variables de valores-----
'-----------------------------


'-----------------------------
'----Si el link coincide-----
'-----------------------------
If ComboBox1.ListIndex = 0 Then
   If UCase(link) Like "*" & UCase(Me.TextBox1.Value) & "*" Then
   Me.Lista.AddItem
   Me.Lista.List(y, 0) = Hoja1.Cells(fila, 1).Value
   Me.Lista.List(y, 1) = Hoja1.Cells(fila, 2).Value
   Me.Lista.List(y, 2) = Hoja1.Cells(fila, 3).Value
   Me.Lista.List(y, 3) = Hoja1.Cells(fila, 4).Value
   Me.Lista.List(y, 4) = Hoja1.Cells(fila, 5).Value
   Me.Lista.List(y, 5) = Hoja1.Cells(fila, 6).Value
   Me.Lista.List(y, 6) = Hoja1.Cells(fila, 7).Value
   Me.Lista.List(y, 7) = Hoja1.Cells(fila, 8).Value
   Me.Lista.List(y, 8) = Hoja1.Cells(fila, 9).Value
   Me.Lista.List(y, 9) = Hoja1.Cells(fila, 10).Value
   y = y + 1
   End If
 End If
'-----------------------------
'----Si la descripción coincide-----
'-----------------------------
If ComboBox1.ListIndex = 1 Then
   If UCase(descrip) Like "*" & UCase(Me.TextBox1.Value) & "*" Then
   Me.Lista.AddItem
   Me.Lista.List(y, 0) = Hoja1.Cells(fila, 1).Value
   Me.Lista.List(y, 1) = Hoja1.Cells(fila, 2).Value
   Me.Lista.List(y, 2) = Hoja1.Cells(fila, 3).Value
   Me.Lista.List(y, 3) = Hoja1.Cells(fila, 4).Value
   Me.Lista.List(y, 4) = Hoja1.Cells(fila, 5).Value
   Me.Lista.List(y, 5) = Hoja1.Cells(fila, 6).Value
   Me.Lista.List(y, 6) = Hoja1.Cells(fila, 7).Value
   Me.Lista.List(y, 7) = Hoja1.Cells(fila, 8).Value
   Me.Lista.List(y, 8) = Hoja1.Cells(fila, 9).Value
   Me.Lista.List(y, 9) = Hoja1.Cells(fila, 10).Value
   y = y + 1
   End If
 End If
'-----------------------------
'----Si el informe coincide-----
'-----------------------------
If ComboBox1.ListIndex = 2 Then
   If UCase(informe) Like "*" & UCase(Me.TextBox1.Value) & "*" Then
   Me.Lista.AddItem
   Me.Lista.List(y, 0) = Hoja1.Cells(fila, 1).Value
   Me.Lista.List(y, 1) = Hoja1.Cells(fila, 2).Value
   Me.Lista.List(y, 2) = Hoja1.Cells(fila, 3).Value
   Me.Lista.List(y, 3) = Hoja1.Cells(fila, 4).Value
   Me.Lista.List(y, 4) = Hoja1.Cells(fila, 5).Value
   Me.Lista.List(y, 5) = Hoja1.Cells(fila, 6).Value
   Me.Lista.List(y, 6) = Hoja1.Cells(fila, 7).Value
   Me.Lista.List(y, 7) = Hoja1.Cells(fila, 8).Value
   Me.Lista.List(y, 8) = Hoja1.Cells(fila, 9).Value
   Me.Lista.List(y, 9) = Hoja1.Cells(fila, 10).Value
   y = y + 1
   End If
 End If
'-----------------------------
'----Si la fecha coincide-----
'-----------------------------
If ComboBox1.ListIndex = 3 Then
   If UCase(fecha) Like "*" & UCase(Me.TextBox1.Value) & "*" Then
   Me.Lista.AddItem
   Me.Lista.List(y, 0) = Hoja1.Cells(fila, 1).Value
   Me.Lista.List(y, 1) = Hoja1.Cells(fila, 2).Value
   Me.Lista.List(y, 2) = Hoja1.Cells(fila, 3).Value
   Me.Lista.List(y, 3) = Hoja1.Cells(fila, 4).Value
   Me.Lista.List(y, 4) = Hoja1.Cells(fila, 5).Value
   Me.Lista.List(y, 5) = Hoja1.Cells(fila, 6).Value
   Me.Lista.List(y, 6) = Hoja1.Cells(fila, 7).Value
   Me.Lista.List(y, 7) = Hoja1.Cells(fila, 8).Value
   Me.Lista.List(y, 8) = Hoja1.Cells(fila, 9).Value
   Me.Lista.List(y, 9) = Hoja1.Cells(fila, 10).Value
   y = y + 1
   End If
 End If
'-----------------------------
'----Si la comuna coincide-----
'-----------------------------
If ComboBox1.ListIndex = 4 Then
   If UCase(comuna) Like "*" & UCase(Me.TextBox1.Value) & "*" Then
   Me.Lista.AddItem
   Me.Lista.List(y, 0) = Hoja1.Cells(fila, 1).Value
   Me.Lista.List(y, 1) = Hoja1.Cells(fila, 2).Value
   Me.Lista.List(y, 2) = Hoja1.Cells(fila, 3).Value
   Me.Lista.List(y, 3) = Hoja1.Cells(fila, 4).Value
   Me.Lista.List(y, 4) = Hoja1.Cells(fila, 5).Value
   Me.Lista.List(y, 5) = Hoja1.Cells(fila, 6).Value
   Me.Lista.List(y, 6) = Hoja1.Cells(fila, 7).Value
   Me.Lista.List(y, 7) = Hoja1.Cells(fila, 8).Value
   Me.Lista.List(y, 8) = Hoja1.Cells(fila, 9).Value
   Me.Lista.List(y, 9) = Hoja1.Cells(fila, 10).Value
   y = y + 1
   End If
 End If
'-----------------------------
'----Si el sector coincide-----
'-----------------------------
If ComboBox1.ListIndex = 5 Then
   If UCase(sector) Like "*" & UCase(Me.TextBox1.Value) & "*" Then
   Me.Lista.AddItem
   Me.Lista.List(y, 0) = Hoja1.Cells(fila, 1).Value
   Me.Lista.List(y, 1) = Hoja1.Cells(fila, 2).Value
   Me.Lista.List(y, 2) = Hoja1.Cells(fila, 3).Value
   Me.Lista.List(y, 3) = Hoja1.Cells(fila, 4).Value
   Me.Lista.List(y, 4) = Hoja1.Cells(fila, 5).Value
   Me.Lista.List(y, 5) = Hoja1.Cells(fila, 6).Value
   Me.Lista.List(y, 6) = Hoja1.Cells(fila, 7).Value
   Me.Lista.List(y, 7) = Hoja1.Cells(fila, 8).Value
   Me.Lista.List(y, 8) = Hoja1.Cells(fila, 9).Value
   Me.Lista.List(y, 9) = Hoja1.Cells(fila, 10).Value
   y = y + 1
   End If
 End If
'-----------------------------
'----Si la calle coincide-----
'-----------------------------
If ComboBox1.ListIndex = 6 Then
   If UCase(calle) Like "*" & UCase(Me.TextBox1.Value) & "*" Then
   Me.Lista.AddItem
   Me.Lista.List(y, 0) = Hoja1.Cells(fila, 1).Value
   Me.Lista.List(y, 1) = Hoja1.Cells(fila, 2).Value
   Me.Lista.List(y, 2) = Hoja1.Cells(fila, 3).Value
   Me.Lista.List(y, 3) = Hoja1.Cells(fila, 4).Value
   Me.Lista.List(y, 4) = Hoja1.Cells(fila, 5).Value
   Me.Lista.List(y, 5) = Hoja1.Cells(fila, 6).Value
   Me.Lista.List(y, 6) = Hoja1.Cells(fila, 7).Value
   Me.Lista.List(y, 7) = Hoja1.Cells(fila, 8).Value
   Me.Lista.List(y, 8) = Hoja1.Cells(fila, 9).Value
   Me.Lista.List(y, 9) = Hoja1.Cells(fila, 10).Value
   y = y + 1
   End If
 End If
'-----------------------------
'----Si el tipo coincide-----
'-----------------------------
If ComboBox1.ListIndex = 7 Then
   If UCase(tipo) Like "*" & UCase(Me.TextBox1.Value) & "*" Then
   Me.Lista.AddItem
   Me.Lista.List(y, 0) = Hoja1.Cells(fila, 1).Value
   Me.Lista.List(y, 1) = Hoja1.Cells(fila, 2).Value
   Me.Lista.List(y, 2) = Hoja1.Cells(fila, 3).Value
   Me.Lista.List(y, 3) = Hoja1.Cells(fila, 4).Value
   Me.Lista.List(y, 4) = Hoja1.Cells(fila, 5).Value
   Me.Lista.List(y, 5) = Hoja1.Cells(fila, 6).Value
   Me.Lista.List(y, 6) = Hoja1.Cells(fila, 7).Value
   Me.Lista.List(y, 7) = Hoja1.Cells(fila, 8).Value
   Me.Lista.List(y, 8) = Hoja1.Cells(fila, 9).Value
   Me.Lista.List(y, 9) = Hoja1.Cells(fila, 10).Value
   y = y + 1
   End If
 End If
'-----------------------------
'----Si la superficie coincide-----
'-----------------------------
If ComboBox1.ListIndex = 8 Then
   If UCase(superficie) Like "*" & UCase(Me.TextBox1.Value) & "*" Then
   Me.Lista.AddItem
   Me.Lista.List(y, 0) = Hoja1.Cells(fila, 1).Value
   Me.Lista.List(y, 1) = Hoja1.Cells(fila, 2).Value
   Me.Lista.List(y, 2) = Hoja1.Cells(fila, 3).Value
   Me.Lista.List(y, 3) = Hoja1.Cells(fila, 4).Value
   Me.Lista.List(y, 4) = Hoja1.Cells(fila, 5).Value
   Me.Lista.List(y, 5) = Hoja1.Cells(fila, 6).Value
   Me.Lista.List(y, 6) = Hoja1.Cells(fila, 7).Value
   Me.Lista.List(y, 7) = Hoja1.Cells(fila, 8).Value
   Me.Lista.List(y, 8) = Hoja1.Cells(fila, 9).Value
   Me.Lista.List(y, 9) = Hoja1.Cells(fila, 10).Value
   y = y + 1
   End If
 End If
'-----------------------------
'----Si el valorUF coincide-----
'-----------------------------
If ComboBox1.ListIndex = 9 Then
   If UCase(valorUF) Like "*" & UCase(Me.TextBox1.Value) & "*" Then
   Me.Lista.AddItem
   Me.Lista.List(y, 0) = Hoja1.Cells(fila, 1).Value
   Me.Lista.List(y, 1) = Hoja1.Cells(fila, 2).Value
   Me.Lista.List(y, 2) = Hoja1.Cells(fila, 3).Value
   Me.Lista.List(y, 3) = Hoja1.Cells(fila, 4).Value
   Me.Lista.List(y, 4) = Hoja1.Cells(fila, 5).Value
   Me.Lista.List(y, 5) = Hoja1.Cells(fila, 6).Value
   Me.Lista.List(y, 6) = Hoja1.Cells(fila, 7).Value
   Me.Lista.List(y, 7) = Hoja1.Cells(fila, 8).Value
   Me.Lista.List(y, 8) = Hoja1.Cells(fila, 9).Value
   Me.Lista.List(y, 9) = Hoja1.Cells(fila, 10).Value
   y = y + 1
   End If
 End If
 
 
 
 
 
 
 
 
 
 

Next

End Sub

Private Sub UserForm_Activate()
Me.Lista.RowSource = "TablaPrincipal"
Me.Lista.ColumnCount = 10
End Sub

Private Sub UserForm_Click()
End Sub

Private Sub UserForm_Initialize()


'Get the List Object
    Dim myList As ListObject
    Set myList = Hoja1.ListObjects("TablaPrincipal") 'CHANGE "List1" TO MATCH YOUR TABLE'S NAME
    
    'Get the Headers
    Dim ListHeaders As Range
    Set ListHeaders = myList.HeaderRowRange
    
    'Create an empty Array
    Dim Headers() As String
    ReDim Headers(ListHeaders.Cells.Count - 1)
    
    'Fill the Array
    Dim i As Long
    For i = 0 To ListHeaders.Cells.Count - 1
        Headers(i) = ListHeaders.Cells(i + 1)
    Next
    
    'Put the Array into the ComboBox
    Me.ComboBox1.List = Headers

   
End Sub
EN

回答 1

Stack Overflow用户

发布于 2022-03-11 19:38:33

这就是你想要的,我想:

代码语言:javascript
运行
复制
Option Explicit

Private Sub ComboBox1_Change()
    TextBox1.Enabled = ComboBox1.ListIndex <> -1
End Sub

'add a listobject datarow range to a listbox
Private Sub RowToList(rw As Range, lst As MSForms.ListBox)
    Dim i As Long, r As Long
    lst.AddItem
    r = UBound(lst.List, 1)
    For i = 1 To rw.Cells.Count
        lst.List(r, i - 1) = rw.Cells(i)
    Next i
End Sub

'this is the one place to edit the source listobject
Private Function SourceList() As ListObject
    Set SourceList = Hoja1.ListObjects("TablaPrincipal")
End Function

'clear a listbox
Private Sub ClearList(lst As MSForms.ListBox)
    If Len(lst.RowSource) > 0 Then
        lst.RowSource = ""
    Else
        lst.Clear
    End If
End Sub

Private Sub TextBox1_Change()
    Dim rw As Range, v, lo As ListObject, i As Long
    Dim colNum As Long
    
    Set lo = SourceList
    v = Me.TextBox1.Value
    ClearList Me.Lista
    
    If Len(v) > 0 Then 'any search term?
        colNum = Me.ComboBox1.ListIndex + 1 'which column are we searching on?
        v = "*" & lcase(v) & "*" 'convert to lower case for comparisons
        For Each rw In lo.DataBodyRange.Rows
            'convert list value to lower case for case-insensitive comparison
            If LCase(rw.Cells(colNum).Value) Like v Then 'check the relevant column
                RowToList rw, Me.Lista
            End If
        Next rw
    Else
        Me.Lista.RowSource = lo 'no search term: reload the whole table
    End If
End Sub

Private Sub UserForm_Activate()
    Me.Lista.RowSource = SourceList
    Me.Lista.ColumnCount = SourceList.DataBodyRange.Columns.Count 'dynamic
End Sub

Private Sub UserForm_Initialize()
    Dim myList As ListObject, ListHeaders As Range
    Dim Headers() As String, i As Long
    Set myList = SourceList
    Set ListHeaders = myList.HeaderRowRange
    ReDim Headers(ListHeaders.Cells.Count - 1)
    For i = 0 To ListHeaders.Cells.Count - 1
        Headers(i) = ListHeaders.Cells(i + 1)
    Next
    Me.ComboBox1.List = Headers
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71365447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档