Tag: excel vba

Excel VBA匹配并排列行

我有列A到J的Excel文档。我有列K到N与相关的数据,但不alignment。 我需要将列F中的值与列K中的值匹配,以便排列在一起。 当我移K时,我必须将L,M,N一起移动。 我不能排列列A到J – 他们必须保持在位。 之前的示例: ABCDEFGHIJKLMN data data data data data record1 data data data data record3 data data data data data data data data record2 data data data data record1 data data data data data data data data record3 data data data data data data data data data record4 data data data […]

Excel VBA仅复制粘贴值(xlPasteValues)

我试图将sheetA中的整个列复制到SheetB中。sheetA列具有用formuls形成的值。 我只使用xlPasteValues复制SheetA列值。 但它不会将值粘贴到另一个sheetB。 sheetB中的列是空的。 我的VBA代码 Public Sub CopyrangeA() Dim firstrowDB As Long, lastrow As Long Dim arr1, arr2, i As Integer firstrowDB = 1 arr1 = Array("BJ", "BK") arr2 = Array("A", "B") For i = LBound(arr1) To UBound(arr1) With Sheets("SheetA") lastrow = Application.Max(3, .Cells(.Rows.Count, arr1(i)).End(xlUp).Row) .Range(.Cells(1, arr1(i)), .Cells(lastrow, arr1(i))).Copy Sheets("SheetB").Range(arr2(i) & firstrowDB).PasteSpecial xlPasteValues End With […]

使用超过2个标准的自动filter

你如何使用VBA自动filter超过2个variables – 我不断收到错误消息: 命名的参数未find 代码如下: .AutoFilter Field:=1, Criteria1:="HP Compaq 6000", Operator:=xlOr, Criteria2:="HP Compaq 8000", Operator:=xlOr, Criteria3:="HP Compaq 8200", Operator:=xlOr, Criteria4:="HP Compaq 8200 Elite", Operator:=xlOr, Criteria5:="HP Compaq dc5800", Operator:=xlOr, Criteria6:="HP Compaq dc7900", Operator:=xlOr, Criteria7:="HP Compaq Elite 8300 SFF", Operator:=xlOr, Criteria8:="HP Compaq Pro 8300 SFF" 我想知道是否有可能使用AutoFilter在同一列中筛选超过2个条件的数据。 如果没有,是否有另一种方法来实现这一目标?

Dir()函数不适用于Mac Excel 2011 VBA

嗨,我想列出Excel工作簿所在的子目录中的所有文件。出于某种原因,代码不能超出Dir函数执行。 任何人都可以请指教? 谢谢! Sub ListFiles() ActiveSheet.Name = "temp" Dim MyDir As String 'Declare the variables Dim strPath As String Dim strFile As String Dim r As Long MyDir = ActiveWorkbook.Path 'current path where workbook is strPath = MyDir & ":Current:" 'files within "Current" folder subdir, I am using Mac Excel 2011 'Insert the headers in […]

如何在Excel VBA中切片数组?

Excel VBA中可以使用什么函数来切片数组?

如何将2D Excel表格“拼合”或“折叠”为1D?

我有一个与国家和Excel年的二维表。 例如。 1961 1962 1963 1964 USA axgy France ueha Germany oxnp 我想“扁平化”它,这样,我在第一列中有国家,在第二列中有一年,然后在第三列中有价值。 例如。 Country Year Value USA 1961 a USA 1962 x USA 1963 g USA 1964 y France 1961 u … 我在这里呈现的例子只是一个3x4matrix,但是我拥有的真实数据集显着更大(大约50×40左右)。 任何build议如何使用Excel可以做到这一点?

如何获取VBA中当前工作表的path?

我写了一个macros作为一个add = in 。 我需要获取正在执行的当前工作表的path。 我如何做到这一点? 我如何获得文件path(只是目录)?

函数中的Excel VBA加载工作表

我正在尝试编写一个函数来查找外部工作表的第一行。 我可以做一个子,但它不是作为一个function。 可以这样做。 目前我正在使用 Function GetLine(fileName As String) As Boolean GetLine = 0 Dim loadBook As Workbook If loadBook = Application.Workbooks.Open(fileName) Then GetLine = True Else GetLine = False End If end function 我得到#value的回报。 我认为这是因为加载工作簿时出错。 请指教,谢谢。

在VBA Excel上的“ClearContents”有两种方法,但是1正常工作。 为什么?

晚上好朋友: 我记住了清除VBA项目的单元格的定义范围内的两种方法(在MS Excel中): Worksheets("SheetName").Range("A1:B10").ClearContents Worksheets("SheetName").Range(Cells(1, 1), Cells(10, 2)).ClearContents 问题是,第二种方式显示错误“ 1004 ”,当我不看当前工作表“SheetName”(换句话说,当我没有“SheetName”作为ActiveSheet)。 在任何情况下,第一种方式完美无瑕。 为什么会发生? 如何在没有这个bug的情况下使用“第二种方式”?

根据条件删除行

我希望有人可以帮助这段代码。 如果我在列A中find文本“FemImplant”,我试图删除整行。棘手的部分是,这个文本是由'$'链接的句子的一部分。 所以我需要在“$”之前parsing出单元格的内容,看它是否与“FemImplant”匹配并删除该行。 这是我迄今为止,但它没有工作。 Dim cell As Excel.Range RowCount = DataSheet.UsedRange.Rows.Count Set col = DataSheet.Range("A1:A" & RowCount) Dim SheetName As String Dim ParsedCell() As String For Each cell In col ParsedCell = cell.Value.Split("$") SheetName = ParsedCell(0) If SheetName = "FemImplant" Then cell.EntireRow.Delete Shift:=xlUp End If 下一个