谁会用vba查询一个log文件,然后将结果显示在excel上
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谁会用vba查询一个log文件,然后将结果显示在excel上相关的知识,希望对你有一定的参考价值。
我想用excel查询一个log文件
我是想在excel上想通过选择日志文件路径来对这个日志文件进行查询操作,然后将查询结果显示在excel上,谁会这样的功能阿? 给我做一个简单的类似的demo也行啊 谢谢了 万分着急中~~~~~
邮箱:kwantong2006@yahoo.com.cn
1楼的大哥你太NB了(膜拜中),我就想要这种效果,不过现在还有一个功能就是,选择完文件之后,还有一个text是输入用户名的,然后再点一个按钮进行查询,因为要按照用户名搜索记录,现在这样是将所有记录都显示出来了。
并且还有一点(不好意思我是做java的没有这方面的基础),显示出来的记录要按照一定格式输出,
每一条记录是这样的
2008-02-22 16:07:40,515 [6] INFO ClaimManager.BLL.BasePage [(null)] <(null)> - Id:admin 事件名:RBCMS_07_03 - btnSearch_Click 処理时间:14828.125ms END
//记录注释:
//操作日时:2008-02-22 16:07:40,515
//操作功能:[6] INFO ClaimManager.BLL.BasePage [(null)] <(null)>
//操作者:admin
//事件名: RBCMS_07_03 - btnSearch_Click
//処理时间:14828.125ms (可能没有此项)
//开始/终了:END
我现在要把查处的记录放到excel的表中,表的格式为
操作日时 操作者 操作内容 开始/终了 処理时间
//操作内容为 操作功能+事件名
帮帮我吧谢谢了,我又加了100分!!!
Dim a As String
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
a = .SelectedItems(1)
End With
If ActiveSheet.QueryTables.Count = 0 Then
ActiveSheet.QueryTables.Add Connection:="TEXT;" & a, Destination:=Range("A1")
Else
ActiveSheet.QueryTables(1).Connection = "TEXT;" & a
End If
With ActiveSheet.QueryTables(1)
.Name = "Log"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
.Destination = Range("A1")
End With 参考技术A Dim a As String
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
a = .SelectedItems(1)
End With
If ActiveSheet.QueryTables.Count = 0 Then
ActiveSheet.QueryTables.Add Connection:="TEXT;" & a, Destination:=Range("A1")
Else
ActiveSheet.QueryTables(1).Connection = "TEXT;" & a
End If
With ActiveSheet.QueryTables(1)
.Name = "Log"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
.Destination = Range("A1")
End With
2分到手
对 Analysis Services 的 VBA Reptitive MDX 查询
【中文标题】对 Analysis Services 的 VBA Reptitive MDX 查询【英文标题】:VBA Reptitive MDX query to Analysis Services 【发布时间】:2015-06-26 10:19:20 【问题描述】:我有一个报告,我每周运行相同的 MDX 查询,然后将结果粘贴到工作表中,然后生成报告。我知道如何在 Excel 中连接到 OLAP 多维数据集,但我不喜欢操纵数据透视表来匹配我的查询。
我想使用 VBA 连接到多维数据集,并将工作表中特定查询的结果作为值粘贴或表格返回。我可以将 MDX 查询保存在单独的工作表中。这可能吗?我是 VBA 新手,所以我不知道从哪里开始。任何示例代码都会很棒。
【问题讨论】:
【参考方案1】:我认为上一个问题几乎是您所需要的:Any MDX query within Excel vba?
我修改了上一个问题答案中的代码,只是写了以下内容,它似乎返回了一个数字:
Sub getFromCube()
Dim strConn As String
strConn = _
"Provider=MSOLAP.6;" & _
"Data Source=imxxxxxx;" & _ '<<<name of your server here
"Initial Catalog=AdventureWorksDW2012Multidimensional-EE;" & _ '<<<name of your Adv Wrks db here
"Integrated Security=SSPI"
Dim pubConn As ADODB.Connection
Set pubConn = New ADODB.Connection
pubConn.CommandTimeout = 0
pubConn.Open strConn
Dim cs As ADOMD.Cellset
Set cs = New ADOMD.Cellset
Dim myMdx As String
myMdx = _
" SELECT" & _
" NON EMPTY" & _
" [Customer].[Customer Geography].[State-Province].&[AB]&[CA] ON 0," & _
" NON EMPTY" & _
" [Measures].[Internet Sales Amount] ON 1" & _
" FROM [Adventure Works];"
With cs
.Open myMdx, pubConn
ActiveSheet.Range("A1") = cs(0, 0)
.Close
End With
End Sub
如果您查看上一个问题,您会发现获取数据单元集非常容易,但是将其粘贴到工作表中并不是那么简单。为了简单起见并快速检查事情是否按预期工作,我只是使用了这个ActiveSheet.Range("A1") = cs(0, 0)
。我认为您将需要遍历单元组。
注意 - 您需要添加两个引用才能使上述内容生效:
-
Microsoft ActiveX 数据对象 6.1 库
Microsoft ActiveX 数据对象(多维)6.0 库
(或您可用的每个版本的最新版本)
【讨论】:
很有用,谢谢分享!您知道是什么决定了将其粘贴到工作表中的速度吗?我曾经将来自不同程序的数据粘贴到电子表格中,并希望使用它来自动化它,但如果复制+粘贴速度更快,它可能不值得 @ErikRasmussen 不太确定 - 尝试根据您的需要调整此代码并查看它是否更快可能会很有趣。即使手动完成更快,您也可能会学到一些有助于未来更大自动化任务的东西。以上是关于谁会用vba查询一个log文件,然后将结果显示在excel上的主要内容,如果未能解决你的问题,请参考以下文章