将数据导出到单个CSV文件

使用VBA将Excel 2010中的数据导出为CSV格式的特定范围的单元格的有效方法是什么? 数据总是从单元格A3开始。 范围的结尾取决于数据集(总是列Q,但行结束可能会有所不同)。 它应该只从名为“内容”的工作表2导出数据,而单元格只需包含“真实”数据(如文本或数字),而不是包含公式的空值。 单元格具有公式的原因是因为它们引用表1和3中的单元格。公式使用常规引用和垂直search。 使用UsedRange将导出Excel使用的所有单元格。 这个工作,但它也最终导出所有包含公式的空单元格,但没有数据导致在输出.csv中产生大量(510)精确)不必要的分号。 Sub SavetoCSV() Dim Fname As String Sheets("Content").UsedRange.Select Selection.Copy Fname = "C:\Test\test.csv" Workbooks.Add ActiveSheet.Paste ActiveWorkbook.SaveAs Filename:=Fname, _ FileFormat:=xlCSV, CreateBackup:=False, local:=True Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True End Sub 一种解决scheme可能是用Offset或Resize来改变VB代码中的UsedRange。 另一个可能是创build一个RealRangevariables,然后selectcopy。 类似的问题已经被不止一次地问过,就像这里 , 这里和这里一样 ,我也看了SpecialCells,但不知怎的,我不能按照我想要的方式工作。 我已经尝试了下面的代码,但它最终也添加了表3中的行。 Sub ExportToCSV() Dim Fname As String Dim RealRange As String Dim Startrow […]

如何检查VBA模块是否被修改?

我有一个Excel工作簿,我希望每次closures工作簿时导出代码,但是我希望有select地这样做,以便每个模块只有在工作簿打开后才被修改的情况下才能导出。 我希望能够使用导出的文件来运行代码上的差异,我假设每次重新导出将导致文件始终被标记为不同。 下面是一些伪代码的尝试,以显示我的意思: for each module in Workbook if module.isModified() then module.export end if next module

date和格式function

我有一个combobox(下拉列表)在用户窗体上列出昨天的当前date和date。 代码如下: With currentDate .AddItem Date .AddItem Date – 1 End With 由于这将返回系统date,所以我在格式化时遇到了问题,因为macros在不同的计算机上使用,并且它们具有不同的系统date格式。 对于某些date格式是“mm / dd / yyyy”,例如“2015年11月4日”,有些系统date格式是“dd / mm / yyyy”,例如“04/11/2015”。 即使系统date格式设置为“mm / dd / yyyy”,我也需要combobox显示“dd / mm / yyyy” 我试过这样做: datefor = Date datefor = Format(datefor, "dd/mm/yyyy") With currentDate .AddItem Date .AddItem Date – 1 End With 但是我不断收到错误。 有任何想法吗?

目标寻求macros观,改变单元格引用不是硬性的价值

我正在努力为我的excel模型寻找一个macros的目标。 有没有可能创build一个macros,这个ChangingCell不是一个硬性的值,而是一个指向一个硬值的平等的公式。 Range("D1").GoalSeek Goal:=0.17, ChangingCell:=Range("D424") 所以在这种情况下,单元格D424会变成另一个有难度的单元格。 我可以直接将ChangingCell设置为D424的原因是,根据文件上的各种select,更改单元格的目标查找引用发生更改。

请求:使用python 3下载一个excel文件(无效文字为int 16)

我是python的新手,我正在学习使用它来为我刮取一些数据,但由于某些原因,我无法下载excel文件,我不明白。 我想下载这个excel文件,当我在任何浏览器中打开这个链接时,它会尝试保存一个excel文件: http://www5.registraduria.gov.co/CuentasClarasPublicoCon2014/Consultas/Candidato/Formulario5xls/2 基于以前的问题(请参阅从网上下载python中的Excel文件 )我在python 3中使用请求,如下所示: import requests, os url="http://www5.registraduria.gov.co/CuentasClarasPublicoCon2014/Consultas/Candidato/Formulario5xls/2" print("Downloading…") requests.get(url) output = open('test.xls', 'wb') output.write(resp.content) output.close() print("Done!") 我认为这个问题不是在test.xls被创build之后写入数据的那部分代码,而是一个空文件。 requests.get给了我下面的错误(后面还有几个): Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/requests/packages/urllib3/response.py", line 417, in _update_chunk_length self.chunk_left = int(line, 16) ValueError: invalid literal for int() with base 16: b'' 我也尝试使用urllib,但仍然失败。

在另一个文件中参考范围

我在一个打开的Excel文件中有一个macros,并想引用另一个打开的Excel文件中的单元格。 Range("b5").Activate ActiveCell.Value = '[jobpl1.xlsx]Sheet1'!E16 它不能编译。

Excel从PowerShell中不识别date

我试图在Excel中导出一些数据,但是当我格式化date列时,它不会更改,并且Excel不会将其识别为date。 如何才能做到这一点被Excel认可? 这里是我的PowerShell命令来获取文件的属性: $ITEMS=@(ls -path $STARTFOLDER -Recurse |Select FullName,Name,Attributes,@{Name="Date"; Expression={$_.LastWriteTime}},Extension,@{Name="Mbytes";Expression={"{0:N3}" -f ($_.Length / 1Mb)}}) 还有一个数据的例子 FullName : C:\file.txt Name : Computers.txt Attributes : Archive LastWriteTime : 05.08.2015 08:35:15 Extension : .txt Mbytes : 0.002

Excelmacros如果replace公式

我试图replace单元格中的值,所以如果它有0隐藏它。 excel公式如下IF(A1=0;"";A1) 。 我正在尝试这个automaticaly,但我有问题。 到目前为止,我想出了这个: Sub apply_Error_Control() Dim cel As Range For Each cel In Selection If cel.HasFormula Then cel.Formula = Replace(cel.Formula, "=", "=IFF(") & "=0" & ";" & "")" End If Next cel End Sub

独特的计数(Excel VBA vs公式)更快的方法

64位Win7工作表上的32位Excel 365 300600行x 105列目标:计算每列中唯一条目的数量 试图解决scheme1:公式 {=SUM(1/COUNTIF(A8:A300600,A8:A300600))} 问题:长时间运行,冻结Excel,必须停止计算 尝试解决scheme2:VBA UDF Function UniqueCount(Selection As Range) As Integer Dim UniqueArray() ReDim UniqueArray(0 To Selection.Count) Dim Rng As Range Dim CUniqueCount As Integer CUniqueCount = 0 For Each Rng In Selection For i = 0 To Selection.Count If UniqueArray(i) = Rng.Value Then Exit For If UniqueArray(i) = "" Then […]

“For Each”循环没有循环遍历重复ID的行

这是一个VBAmacros的一部分,它改变了从在线商店导出的订单信息,稍后将其导入到货运经理。 下面的代码正在做什么,如果满足条件,用STL1 / 2代替CRL1 / 2。 出现的问题是,将来自商店的单个订单拆分为列A中每行具有相同订单号的单独行。 macros只处理具有相同订单号的第一行。 Dim Cel7_Lastrow As Integer Cel7_Lastrow = Sheet2.Cells(Rows.Count, 1).End(xlUp).Row Dim Rng As Range Set Rng = Sheet2.Range("A2:A" & Cel7_Lastrow) For Each Cel7 In Rng Dim Lookup_Range2 As Range Country_Name = Cel7.Value2 C_Code = Cel7.Value2 Weight_V = Cel7.Value2 Set Lookup_Range2 = Sheet2.Range("A2:R" & Cel7_Lastrow) Country = Application.WorksheetFunction.VLookup(Country_Name,Lookup_Range2, 8, False) […]