所以我有大约100个Excel文件保存为我的文件夹中的.xml,我已经写了一个VBA代码格式的文件夹中的所有工作簿(文件)的每个工作表的布局设置。 但问题是代码不能在所有工作簿的最后一个工作表中工作,对于其他工作簿,即直到每个工作簿的最后一个工作表,它都能正常工作。 这里是代码: Sub LoopAllExcelFilesInFolder() Dim wb As Workbook Dim sht As Worksheet Dim myPath As String Dim myFile As String Dim myExtension As String Dim FldrPicker As FileDialog 'Optimize Macro Speed Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManual 'Retrieve Target Folder Path From User Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker) With FldrPicker .Title = […]
我有一个工作表,其中包含一个xml脚本,即约15列70000行。 我试图将这些数据保存到一个.xml文件。 我正在使用的当前代码是: Sub saveXML() Dim GenerateSheet As Worksheet Set GenerateSheet = ThisWorkbook.Sheets("TestCase-") GenerateSheet.SaveAs Filename:="C:\Users\" & "TestCase-" + Format(Now(), "YYYYMMDD") & ".xml", FileFormat:=xlTextWindows End Sub 这将它保存为一个.xml文件,但它似乎在打破XML文件的文件中的随机行周围添加引号。 "<con:testCase xmlns:con=""http://eviware.com/soapui/config"" failOnError=""true"" failTestCaseOnErrors=""false"" keepSession=""false"" maxResults=""0"" name=""name"" searchProperties=""true"">" <con:settings/> "<con:testStep type=""request"" name=""TestStep_0001"">" <con:settings/> "<con:config xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:type=""con:RequestStep"">" <con:interface>QuoteService</con:interface> <con:operation>NewRate</con:operation> "<con:request name=""NewRate – Request 1"" outgoingWss="""" incomingWss="""" timeout="""" sslKeystore="""" useWsAddressing=""true"" useWsReliableMessaging=""false"" […]
我不确定这是否可能,但这是我没有find答案的一件事。 我创build了一个模板工作簿Schedule.xls ,由不同的人填写,比如personA , personB和personC 。 我需要从每个工作簿中提取相同的范围,方法是将其复制并粘贴到主文件Master.xls ,以便我可以将每个人的信息导入到主工作簿中。 这Master.xls将有Master.xls Schedule.xls人一样多的表。 例如,让我们留下这三个人: personA , personB和personC 。 一旦他们生成他们的时间表,我想获得这些信息,并将其复制到Master.xls ,但在名为personA , personB和personC单独的工作表中。 我想通过在Schedule.xls设置一个单元格来做到这一点,比如A1 ,人们可以在personA , personB和personC之间select一个值。 这样我就可Master.xls的表单创build一个dynamic引用。 其中macros将粘贴信息。 `Range("B2.D5").Select Selection.Copy Workbooks.Open Filename:= _ "C:\My Documents\Master.xlsx" Sheets(*REFERENCE*).Select Range("B2").Select ActiveSheet.Paste Range("A1").Select Application.CutCopyMode = False ActiveWorkbook.Save ActiveWorkbook.Close` 我应该写什么,而不是参考设置我想写在工作表上? 提前致谢。
我一直在寻找两天解决我的问题,但迄今为止没有。 在我工作的地方开发了很多(非常多)vba excel工具,而我们在PC-s中的区域设置决定了逗号作为小数点分隔符,但是从我们的系统下载的报告和数据具有小数点分隔符。 在这些工具中,需要的时候我们只需要设置UseSystemSeparators = False然后DecimalSeparators = "." 并在macros观结束时回复。 现在新来的人已经拿到了10个窗口,一些工具出现了错误。 我从IT获得了一个Win10的testing,发现无论我如何在Excel设置中设置,VBAmacros使用PC区域设置,但仍然使用在Excel设置中确定的PC区域设置。 相同的文件,在我的win7电脑相同的testing,如果设置然后在工作表和VBAmacros使用本地应用程序设置。 有谁知道是什么原因以及如何修复? 我可以想出很多解决方法,但所有这些都意味着这些工具需要重新编码,而且还有很多这样的工具,所以我在三月份join公司之前,仍然一直在寻找使用的新工具和开发的工具。 更改所有〜300个PC-s区域设置不是一个选项,因为它通常需要逗号作为小数点分隔符。 编辑:只是为了更清楚一点,我会添加一些代码: Sub test() Application.UseSystemSeparators = False Application.DecimalSeparator = "." variable = "10.1" MsgBox CDbl(variable) End Sub 在Windows 7下 – 没问题。 包含一个string的variables可以被转换。 在Windows 10下 – 运行时错误,types不匹配。 两台PC都有“,”作为系统分隔符。 有趣的是,当我将“10.1”改为“10,1”时,这两个PC-s都能正常工作。 两台PC-s的设置是相同的。 系统使用“,”作为分隔符,Excel设置为使用“。”。
Dim memberDic As Object: Set memberDic = CreateObject("Scripting.Dictionary") Set memberDic("Team A") = CreateObject("Scripting.Dictionary") memberDic("Team A")("Tanaka") = 1 memberDic("Team A")("Watanabe") = 2 memberDic("Team A")("Shimizu") = 3 For Each person In ActiveSheet.PivotTables(fy).PivotFields("name").PivotItems If Not memberDic("Team A").Exists(person.Name) Then 'hidden person except Team A End If Next person 我想使用Exists方法来排除项目。 你能给我build议吗?
我刚刚开始学习VBA,而且我还没有使用代码。 任何人都可以帮助我如何将Excel文件分成几个工作簿基于行数? 我有大约14K的Excel文件,我需要合并成less于10个工作簿。 在这个合并过程中,我想设置一个条件,其中1个工作簿最多只有80k行,下一个数据将被复制到一个新的工作簿(Book2)中。 以下是我有的合并代码,但我可以在哪里插入行条件? Sub MergeFiles() Dim path As String, ThisWB As String, lngFilecounter As Long Dim wbDest As Workbook, shtDest As Worksheet, ws As Worksheet Dim Filename As String, Wkb As Workbook Dim CopyRng As Range, Dest As Range Dim RowofCopySheet As Integer CurrFilename = ThisWorkbook.FullName ary = Split(CurrFilename, "\") bry = Split(ary(UBound(ary)), […]
我是韩国数据分析师。 我使用韩版Windows 7和操作系统。 我有一个关于instr在VBA(Excel)中的一些问题。 在正常情况下, instr在“C2”处生成准确的数字,指示“A2”string处的起始点编号 这里是正常的样品: 即使是韩国人和日本人(平假名)也没有问题。 请原谅,我不能更多的样本,因为我没有足够的声誉点在这个网站。 但是,当我使用日语片假名时总会出现错误错误信息在句子下面。 发生“7”运行时错误,内存不足 参考这个例子: 我对这个只有一个错误感到尴尬,并试图解决这个问题,但仍然不知道如何。 我希望任何人都能为我提供很好的意见和解 谢谢
所选内容是一个包含以下公式的Excel工作表单元格: =+'[FORECAST MARZO RESTRUCTURING ITALY 20170403 V3.xlsx]DETTAGLIO'!$BA$20 我运行下面的VBA代码: Selection.Replace what:="[FORECAST MARZO RESTRUCTURING ITALY 20170403 V3.xlsx]", _ Replacement:="[AQ_0617 – solo nuova 272.xlsx]" _ , LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat _ :=False, ReplaceFormat:=False 执行代码后,我期望公式成为: =+'[AQ_0617 – solo nuova 272.xlsx]DETTAGLIO'!$BA$20 但是,什么都没有发生。 任何线索?
使用Office 2013时 ,我尝试插入VBA代码,以便在打开Excel电子表格时,自动将任何Office产品右上angular显示的员工姓名input到单元格B2 。 我正在使用的当前代码是 Sub Auto_Open() Range("B2").Value = " " & Application.UserName End Sub 但是,这只是显示“授权用户”。 我究竟做错了什么?
我有下面的vbamacros将选定的单元格导出到文本文件。 问题似乎是分隔符。 我需要一切准确的位置。 我有每个列的宽度设置为正确的宽度( 9像9像SSN ),我有单元格字体作为新快报( 9pt )在Excel表中。 当我运行这个时候,它真的很接近我所需要的,但是它似乎并没有处理那些只是单个空间宽度的列。 我将把WHOLE方法( 和伴随函数 )放在底部作为参考,但首先我想发布我认为是我需要关注的部分。 我只是不知道如何… 这是我相信我的问题是(分隔符设置为delimiter = "" – > ' Loop through every cell, from left to right and top to bottom. For RowNum = 1 To TotalRows For ColNum = 1 To TotalCols With Selection.Cells(RowNum, ColNum) Dim ColWidth As Integer ColWidth = Application.RoundUp(.ColumnWidth, 0) ' […]