Tag: excel vba

如果在单元格中找不到内容/文本/数字,则清除整行

我正在写一个VBA脚本,将删除(清除内容)的整个行如果行内的单元格之一被发现是空白或没有任何文本或整数值。 我几乎在那里,但我认为我的代码卡在for循环。 请让我知道如何进一步改善我的代码。 Sub Remove_Rows_BlankData() For SheetCount = 1 To Sheets.Count 'SHEET LEVEL Sheets(SheetCount).Visible = True Sheets(SheetCount).Select StartRow = 2 ' EndRow = Cells(ActiveSheet.UsedRange.Rows.Count, 34) LastRow = ActiveSheet.UsedRange.Rows.Count LastCol = ActiveSheet.UsedRange.Columns.Count Dim myRange As Range Set myRange = Range(Cells(StartRow, 1), Cells(LastRow, LastCol)) 'REMOVE ROWS W/ ANY BLANK CELLS Dim DRow As Variant ' Sets DRow […]

将多个.xls文件合并到一个工作表中

我有一个完整的.xls文件的文件夹,所有的文件都有相同的结构(列名),我希望代码打开文件夹中的每个文件,复制sheet1的内容并粘贴到另一个excel文件中,打开第二个文件复制并追加到表单1中。 目前我有这样的代码做不同的工作表 Sub GetSheets() Path = "C:\Users\dt\Desktop\dt kte\" Filename = Dir(Path & "*.xls") Do While Filename <> "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop End Sub

用input框复制范围并粘贴到特定工作表上的固定范围

您好,我有这个代码,它允许我复制一个自定义的范围,并粘贴在指定的工作表上的范围。 但是,当插入指定表单的固定范围时,我无法做到这一点。 例如下面的代码将链接粘贴到工作表2,但是我希望它能够粘贴链接到工作表2的范围(B2:N5)。这怎么办? 一些帮助将非常感激! Sub WorkingDuoFunctionCode() Dim rng As Range, inp As Range Set rng = Nothing Set inp = Selection inp.Interior.ColorIndex = 37 On Error Resume Next Set rng = Application.InputBox("Copy to", Type:=8) On Error GoTo 0 If TypeName(rng) <> "Range" Then MsgBox "Cancelled", vbInformation Exit Sub Else rng.Parent.Activate rng.Select inp.Copy Worksheets("Sheet2").Paste Link:=True End […]

在通过excel运行时,xlwings不会在file.xlsm中写入数据

我正在尝试使用xlwings从几个xls文件进行简单合并。 为此,我有一个all_files.xlsm文件,其中包含一个分配给它的macros的button。 这些macros如下所示: Sub check_data() RunPython ("import python_code; python_code.consolidation()") End Sub 在同一个文件夹中,我有一个文件python_code.py里面有“合并”function。 我也使用Workbook.set_mock_caller()为了有机会通过python接口运行代码。 看起来像: def consolidation(file_path): *** smth to get the data I need *** … *** after I got data *** Range('A1').table.clear_contents() #string1 Range('A1').value = data #string2 def main(): consolidation(file_path) if __name__ == '__main__': xl.Workbook.set_mock_caller(path_to_file) main() 问题是,当我通过excel文件中的button运行脚本的最后两个string(string1和string2) – 范围('A1')。table.clear_contents()和范围('A1')。value = data doesn'工作。 虽然其余的代码工作正常(但是,它也包含xlwing)。 而且,如果我使用set […]

Vba创builddate(不是星期几),即:第1天,第2天等date

一个vba-excelmacros来修改我的报告从当前所需的格式在所附的工作表中。 概要 我想添加一个列作为“发生date” – 即:第1天…第Z天根据date/时间列,以便能够使用数据透视表来标识每天使用的所有代码为每个帐号的整个逗留服务。 有4万行帐号与不同的服务天数。 列数应保持与示例中相同。 当前工作表 期望的工作表

Excel VBA:我试图比较具有某些条件的书籍与数据之间的数据,并仅传输不匹配的数据第二本书

book1sheet1数据如下; Rows: from 11 to 17 Column B: 101, 102, 103, 104, 105, 106, 107 Column C: test1, test2, test3, test4, test5, test6, test7 Column D: 12/1/15, 12/2/15, 12/3/15, 12/4/15, 12/5/15, 12/6/15, 12/7/15 Column E: 12/7/15, 12/7/15, 12/8/15, 12/10/15, 12/2/15, 11/30/15, 12/15/15 J11: $45.00 J16: $90.00 K12: $50.00, K13: $100.00, K14: $45.0C L15: $50.00 M14: […]

Excel使用VBA标识多个标准

我在BA列上使用Excel文件中的以下COUNTFS函数: =(COUNTIFS(E$2:E2;E2;$G$2:G2;G2;$I$2:I2;I2;$N$2:N2;N2;$O$2:O2;O2;$R$2:R2;R2)=1)*1 我有超过150K的logging,所以Excel崩溃。 是否有可能改善公式或使用VBA代码做同样的事情? 这是一个示例:

需要VBA代码来select列表中匹配名称的表,然后保存到一个新的工作簿

我有一个棘手的VBA,我正在尝试创build。 我目前拥有的是另外两个macros,它们search两张供应商名称,并用他们的特定信息创build新的工作表。 这使我大约40张,现在我想要做的是写一个macros,将在工作表标题中search供应商名称,并保存与该供应商关联的所有工作表到一个新的工作簿(如果文件存在更新该工作簿中的当前工作表)。 我将在一张表中列出我想用作search条件的供应商列表。 这里是我运行的第一个macros的例子 Sub ERP_POS() Dim ws1 As Worksheet Dim wsNew As Worksheet Dim rng As Range Dim r As Integer Dim c As Range Dim bAF As Boolean Set ws1 = Sheets("ERP_POS") Set rng = Range("Database") bAF = ws1.AutoFilterMode 'extract a list of Sales Reps With ws1 .Columns("P:P").Copy _ Destination:=.Range("X1") .Columns("X:X").AdvancedFilter _ […]

我应该使用哪个版本的null?

Excel不断出现一个错误消息:编译错误 对象的无效使用 If range("C13:17").Find(11) = Nothing Then 'Do nothing Else range(findeleven).Select ActiveCell.FormulaR1C1 = 1 End If 请帮忙 :-) 顺便说一下,它是用VBA编写的

macros按月分组数据

我试图创build一个按月分组数据的macros:例如,如果客户A的2月份有3个条目,那么它将把这三个条目合并为一个,然后对这些条目进行总和。 我有: 答:客户名称 B:发票号码 C:帐单月份 D:货币 E:收费金额 F:发票步骤 我试图做的是将以下内容合并到一行中,将发票数量相加,并将三行replace为一行。 这些条目是针对单个客户端的(因此分组取决于列A中的值)。 例如。 客户端A有一个三个入口,客户端B有一个,客户端C有一个。 那么对于二月份客户端A有一个,客户端B有一个,客户端C有两个。 我在这里看到的任何macros观build议都没有对我有帮助,我不断收到错误,所以我不知道是什么问题。 这是我试过的一个: Sub Group() Dim e As Range, a as Range Set e = Range("C6") Set c = e.Offset(, 2) Do If Evaluate("=month(" & e.Address & ")") <> Evaluate("=month(" & e(2).Address & ")") Then e(2).Resize(2, 3).Insert e(2).Offset(, 2) = "=sum(" & Range(a, […]