由于某些原因,我似乎找不到这样的例子。
我有一张有两根柱子的桌子,县和街。
我有另一张桌子,有许多列,其中有两张是县和街。在第二个表中,每行都已经填写了County,但我需要允许用户单击每行的Street单元格并选择(从下拉菜单中)一条街。下拉列表中的街道必须动态更改,以仅显示第一个表中包含在第二个表的特定行上的县中的街道。
表1:
County | Street
-------------------
County 1 | Street 1
County 1 | Street 2
County 1 | Street 3
County 2 | Street 4
County 2 | St
我是VBA的新手,正在尝试通过主“索引”页面上的下拉列表来创建一种在工作簿中导航工作表的方法。由于工作簿中有多个工作表,并且有多个人在使用,因此我希望下拉列表自动填充,以节省搜索列表的需要。然后我想要打开选定的工作表(可能使用宏按钮,或者甚至通过按enter (如果是一个选项))。 到目前为止,我有以下宏来填充下拉列表(取自另一个站点): Private Sub ComboBox1_DropButtonClick()
Dim xSheet As Worksheet
On Error Resume Next
Application.ScreenUpdating = False
Applicat
我正在编写一个VBA代码,对于每一个下拉选择,它都会复制工作表,因为值会为新工作簿中下拉列表中的每个选项创建一个工作表。问题是,在我的代码中,一切似乎都很好,除了为每个下拉选项创建一个完全独立的工作簿。我的下拉选择大约有80个选项,而且可以增长。所以我不需要80种不同的工作簿。我需要一个新的工作簿与每下拉选择80个工作表。如何修改我的代码,使它只创建一次新的工作簿,而不是每次下拉选择都是该工作簿中的工作表?
这是我的密码
Sub Worksheet_Create()
Dim cell As Range
Dim counter As Long
Dim Dashboard As Workshee
我想知道是否有任何VBA代码允许输入框使用下拉列表搜索工作表,并在用户搜索后自动重定向到工作表。类似于我们如何在excel上找到数据,除了这个事实,它现在是工作表。下拉列表应该包含工作簿中的所有工作表,以便他们可以选择要转到的工作表。我有一个代码,用户必须手动输入,如果工作表名称太长,这可能会很麻烦,从而导致拼写或格式错误。
Sub searchsheet()
Dim strsheet As String
' dim i as integer
strsheet = Application.InputBox("put sheet name", "Sheet
我正在动态创建工作表,它工作得很好。其中一个创建的工作表包含VBA (Worksheet_Activate),它是使用VBA插入的,也可以很好地工作。 现在我正在尝试保存创建的文件,while循环用于强制保存我尝试过的文件: While Not workbookUsed.Saved
Dim filePath As String
filePath = Application.GetSaveAsFilename(fileFilter:="Excel File mit Makro (*.xlsm), *.xlsm")
If VarType(filePath) =
我正在创建一个工作表,它将根据所选内容打印不同的BOM。我把每个BOM都列在工作簿上不同的工作表下面。主工作表将根据需要选择不同的下拉列表,以创建必要的BOM。
我想要做的是隐藏不适用于下拉列表中所选项目的工作表。
这就是我现在所拥有的
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Me.Range("Media_System").Address Then
If Target.Value = "Shop Vac" Then
Sheets(
我正在创建一个组合框,用于使用具有自动完成功能的工作表名称来搜索工作表,我可以在下拉列表中获得工作簿的工作表名称,但当我键入工作表名称的几个字母时,我想要显示所有工作表的建议,以及我在组合框中编写的字母。
下面是到目前为止完成的代码,我可以用它来选择工作表名称并更改该工作表的名称。
first -在first sheet中添加一个组合框,并将其命名为(我称其为cmbSheet)。我使用了一个ActiveX组合框(在Excel2007中,在Developer选项卡下)。
第二步-打开VBA并将以下代码添加到工作簿代码中。此代码将在每次打开工作簿时使用工作表名称填充组合框。
Private Sub
我想要创建一个宏,我可以通过一个UserForm列表框与同事共享这个宏,它包含了我们所有重要工作簿的简单概述。
我刚开始使用VBA Excel,很难理解程序是如何工作的。我在这个问题上找了很多,但找不到我能用的东西。我怀疑解决办法是很直接的。
Private Sub ListBox1_Click()
End Sub
Private Sub UserForm_Initialize()
ListBox1.AddItem "WB1"
ListBox1.AddItem "WB2"
ListBox1.AddItem "WB3"
End Sub
本质上
我有一些代码,目前在工作表中查找填充了淡灰色的任何单元格,然后将该单元格中的值添加到名称列表中。目标是在工作簿的其他地方,我可以引用这个列表作为下拉列表。
以下是我的当前代码:
Sub Add_Food_To_List()
i = 1
Application.ScreenUpdating = False
Range("a1:a60").Select
x = "{"
y = ""
first = True
For Each Cell In Selection
If ActiveCell.Interior.Colo
在“模块”窗口中创建一个工作簿并写入宏之后,宏会被分配给一个按钮。通过单击“查看”>“保护共享工作簿”来保护工作簿将使该工作簿的整个VBA项目“不可见”,确切的错误消息是"Project is Unviewable“。此外,“条件格式”按钮是灰色的。
取消对工作簿的保护,并使用"allow changes by one or more...“选项共享工作簿。勾选不起作用。
宏仍然有效,但我希望能够解决“项目不可见”的问题。
我有以下VBA代码(来自MS Access 2007)。该代码创建一个新的工作簿,并向单元格中添加一个下拉列表。这个小代码片段向特定单元格添加了一个下拉列表,并向其中添加了一些项。
Dim myRng As Range
Dim myDD As Dropdown
Set myRng = wSheet.Cells(row, col)
With myRng
Set myDD = .Parent.DropDowns.Add(Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
myDD.AddItem "msg1"
在Excel 2007中,我有一个工作表,其中包含其他Excel文档的列表,所有这些文档都有自己的VBA。我的代码打开列表中的第一个工作簿,让它的vba运行,然后当它完成时,将其标记为完成,并打开列表中的下一个工作簿。
所有这些都运行得很好,除非我让另一个workbok用“thisworkbook.close”关闭它自己。这会停止在原始工作簿中运行的VBA及其自身。如果我注释掉这一行,一切正常,但我宁愿一次只打开主工作簿和一个子工作簿。
此外,在这种情况下,将所有VBA移动到主工作簿也是不切实际的。
前面的代码是一个高度简化的版本,用来显示这个问题:
Workbook1 1的代码:
Sub R