Tag: vba

通过variables引用表格列

这应该很简单,但我是一个VBA noob。 我已经阅读了很多论坛,只find了一些我无法解读的代码,以致于不能适应我的应用程序。 在Excel 2007中我有一个表已经定义。 我不能张贴图片,因为我是新来的论坛,但该表有3列,标题行1到3,以及一个数据行粗略显示如下: Table1 +——+——+——-+ |1 | 2 | 3 | +——+——+——-+ |Alpha |Bravo |Charlie| +——+——+——-+ 有了这个简单的表格,下面的工作,并返回文字“阿尔法”。 Sub works() Dim item As String Sheets("Sheet1").Select item = ActiveSheet.Range("Table1[1]") MsgBox (item) End Sub 但是我希望能够引用带有可调variables的表格列标题。 为什么不工作: Sub doesntwork() Dim item As String Dim i As String i = 1 Sheets("Sheet1").Select item = ActiveSheet.Range("Table1[i]") MsgBox (item) […]

Excel VBA – 仅复制和粘贴可见的表格行

我想复制只有在一个表中的可见行到同一个工作簿中的一个单独的工作表。 我对使用'ListObject'方法来处理表格有点新(有几个原因,就我的模块其余部分而言,直接引用表格是一个更好的方法) 下面是我最好的尝试,当我运行它时,我得到了'运行时错误'438''的'Sheets("Sheet8").Range("A1").Paste'线,我一直在淘互联网一个小时,现在试图找出我做错了什么,我怎么需要重新措词它,以便将复制的数据粘贴到另一个表/表? 任何援助将不胜感激! 谢谢, 亚当 Private Sub CopyVisibleAreaOfTable(ByVal TableName As String) Const FN_NAME As String = "CopyVisibleAreaOfTable" On Error GoTo catch Dim TargetTable As ListObject Dim NumberOfAreas As Long Set TargetTable = Sheets("Adj1").ListObjects(TableName) ' Check that there are fewer than 8192 seperate areas With TargetTable.ListColumns(1).Range NumberOfAreas = .SpecialCells(xlCellTypeVisible).Areas(1).Cells.Count Debug.Print NumberOfAreas End With If NumberOfAreas […]

在一个子设置一个variables,并在另一个

我是VBA编程的新手,对于你来说可能相当简单。 我们如何设置一个可以在另一个子中使用的variables? 我尝试使用全局variables,但它没有为我工作。 谢谢

用VBAselect“查找”的第二个结果

我试图让我能find第二个“灯”的结果,以防万一出现这个词。 下面的代码find了考虑范围内的第一个事件。 Dim ws As Worksheet Dim rng1 As Range Dim y As Range Columns("B:B").Select Selection.Find(What:="1", After:=ActiveCell, LookIn:=xlValues, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ , SearchFormat:=False).Select Set x = Range(Selection, Selection.End(xlDown)).Offset(0, 3) Range(x.Address(0, 0)).Select Selection.Find(What:="Lights", After:=ActiveCell, LookIn:=xlValues, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ , SearchFormat:=False).Activate Selection.FindNext(After:=ActiveCell).Activate Selection.FindNext(After:=ActiveCell).Select

在Excel中使用VBA自定义function区

我已经知道在Excel中创build自定义选项卡是不可能的! 后(不像即MSProject) 具体而言,我可以将macros的path更改为当前位置吗? 编辑看来,这个网页可能会导致答案,但我仍然不知道如何,但 一些更详细的情况描述: 用户将下载一个文件,其中包含一个材料清单,设备,劳动力。 每列包含数量,定价等信息当用户点击这个button,我想创build(我已经手动创build),另一个工作簿中的一个名为“主”的macros启动并将整个工作表(内容)复制到自身,并执行一些程序做的事情。 所以我面临的问题是,我发送一个新版本给客户,他必须把它放在确切的位置,否则将无法正常工作。 由于涉及到Mac和Windows计算机的组合,我宁愿看到在用户打开WorkBook B(包含代码的那个)时将button分配给该过程的情况。 这样一个新版本只需要打开一次,然后连续使用,用户只需打开下载的文件,点击相应的button,WorkBook B就会自行打开并执行。 也许还有其他方法可以解决这个问题。 我还没有检查是否不容易分配一个button快速访问工具栏…

今天是一个excelmacros的date

我试图在sheet2的列A中添加今天的date,每次我的macros粘贴我在sheet2的新行的B列中selectsheet1。 我的脚本工作添加新行,并将我的select粘贴到工作表2中,但是我无法弄清楚如何在列A的新行中得到date。 这是我的macros中的脚本; Sub move() Dim i As Integer Application.ScreenUpdating = False ActiveWorkbook.Sheets("Sheet1").Range("A1,A2,A3,A4,A5").Copy Sheets("Sheet2").Select i = 3 While Range("B" & i).Value <> "" i = i + 1 Wend Range("B" & i).Select Selection.PasteSpecial (xlValues), Transpose:=True Worksheets("Sheet1").Range("A1:A5").Clear End Sub 任何帮助表示赞赏。 谢谢

如何在Excel中将Excel表格保存为HTML?

我正在使用这个库XlsxWriter 。 我已经打开了一本工作簿,并写了一些东西( 考虑官方的例子 ) – import xlsxwriter # Create a workbook and add a worksheet. workbook = xlsxwriter.Workbook('Expenses01.xlsx') worksheet = workbook.add_worksheet() # Some data we want to write to the worksheet. expenses = ( ['Rent', 1000], ['Gas', 100], ['Food', 300], ['Gym', 50], ) # Start from the first cell. Rows and columns are zero […]

使用VBA循环使用工作簿切片器名称

我试过谷歌search这一个,但只是不能完全得到它。 我所要做的就是通过活动工作表上的切片器进行循环,并删除切片器(如果存在的话)。 目前我有6个切片机坐在那里。 以前我有过 ActiveSheet.Shapes.Range(Array("Market Segment Name 2", "Line of Business 2" _ , "Customer Name", "Product Group Name", "Product Type Name", "Product Code") _ ).Select Selection.Delete 但是,如果我已经删除了切片机,这是不好的。 现在我正在尝试(注意wb被设置为名为“Public”的模块中的全局variables) Option Explicit Dim sl As Slicer Dim slName As String Set wb = ActiveWorkbook For Each sl In wb.SlicerCaches If sl.Name = "Market Segment Name 2" […]

在Excel中添加列

我想创build一个自动插入列D之前的两列的Excelmacros…当我创build它时,过程工作正常,在这里: Sub AddColumns() Columns("D:D").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove End Sub 但是,当我打开我的工作表,并尝试了,我所有的数据被推到右边大约11列和插入11个空白列。 我敢肯定,这有一些行合并了11列。 Select语句select前面的11列AK。 我该如何解决?

VBA Msgbox – 没有默认button

我想知道是否可以在VBA(Excel 2007)中显示Msgbox,没有任何button被设置为默认值? 我有一个yes \ nobutton,我不希望用户打回车或空格键,并意外触发一个默认的button。 任何人都知道这是否可能,以便我的表单上的button都设置为默认,强制用户点击是或否? If MsgBox("Message goes here", vbYesNo + vbQuestion ) = vbYes Then 'Something Else 'Else End If