在VBA过程中,我们通常会在对现有对象实例的对象引用进行实例化时不断满足关键字New.但在某些实例中,我们使用关键字New,而在其他实例中,我们不使用例如:
Dim T As Excel.Workbook
Set T = Application.Workbooks(Bk)
在上面的示例No.1中,未使用"新"关键字
Dim fso As FileSystemObject
Set fso = New FileSystemObject
在上面的例子2号的新的关键字被正在使用
为什么?请记住,我是VBA的新船,但我会尽我所能去理解!
除此之外,我在使用/不用于声明对象引用时也会感到困惑,例如:
Dim WS As Worksheet
在上面的示例No.1中,未使用"新"关键字
Dim myClassModule As New cl_ChartEvents
在上面的例子2号的新的关键字被正在使用
微软帮助只是告诉我什么......
允许隐式创建对象的关键字.如果在声明对象变量时使用New,则在首次引用该对象时会创建该对象的新实例,因此您不必使用Set语句来分配对象引用.
Gratz2u
亲爱的人们,这是最后一次了解深刻理解
Dim WS as Worksheet
Set WS = Worksheets("Sheet1")
就在这里,我们正在创建一个已经存在的对象,以便打开MS Excel(当然,以"默认模式"为例)当然是Sheet1.既然它存在且New关键字是不可能的,我们怎么能立即在一行中实例化这个对象?
4 @exantas
对不起说没有足够的代表发布pic :-(
我确实更新了我的问题,因为我更清楚地了解了我想要解决的技术问题.
答:如果我们从数据代理商网站上的搜索中获取结果URL,我们就会得到这个
https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0000010795&type=10-K&dateb=&owner=exclude&count=20
Run Code Online (Sandbox Code Playgroud)
B.通过在浏览器中输入步骤A的URL并转到我们在第100行(我使用谷歌浏览器)看到的源代码,这个迷人的行也是一个可点击的链接:
href="/Archives/edgar/data/10795/000119312513456802/0001193125-13-456802-index.htm"
Run Code Online (Sandbox Code Playgroud)
该行包含在我们的源代码的代码片段中:
<tr>
<td nowrap="nowrap">10-K</td>
<td nowrap="nowrap"><a href="/Archives/edgar/data/10795/000119312513456802/0001193125-13-456802-index.htm" id="documentsbutton"> Documents</a> <a href="/cgi-bin/viewer?action=view&cik=10795&accession_number=0001193125-13-456802&xbrl_type=v" id="interactiveDataBtn"> Interactive Data</a></td>
<td class="small" >Annual report [Section 13 and 15(d), not S-K Item 405]<br />Acc-no: 0001193125-13-456802 (34 Act) Size: 15 MB </td>
<td>2013-11-27</td>
<td nowrap="nowrap"><a href="/cgi-bin/browse-edgar?action=getcompany&filenum=001-04802&owner=exclude&count=20">001-04802</a><br>131247478 </td>
</tr>
Run Code Online (Sandbox Code Playgroud)
C.如果我们点击第100行的步骤A的链接,我们转到下一页,步骤A的链接现在成为URL的一部分!所以我们得到的是分配给此URL的新页面:
https://www.sec.gov/Archives/edgar/data/10795/000119312513456802/0001193125-13-456802-index.htm
Run Code Online (Sandbox Code Playgroud)
D.使用相同的方法,我们在第182行中遇到了这一行代码
href="/Archives/edgar/data/10795/000119312513456802/bdx-20130930.xml"
Run Code Online (Sandbox Code Playgroud)
如果我们点击我们到达strXMLSite下面的宏的行.一旦你看了宏并运行它,你就会明白,如果我们可以将相关的程序集成到我们的宏中,那么在运行时字符串可以填充所需的URL是一个合乎逻辑的结论.这是问题的核心.
我们已经激活了该过程所需的宏Microsoft XML核心服务(MSXML)(Excel - > VBE - >工具 - >参考 - > Microsoft XML,v6.0)所需的功能.
我们如何通过向程序添加语句,从步骤A中的URL 通过源代码 …
我试图用来BaseX运行一个XQuery没有成功.我尝试过键入以下命令:
doc("Bookstore.xml")//Bookstore
//Bookstore
XQUERY[//Bookstore]
Run Code Online (Sandbox Code Playgroud)
我收到这些错误消息:
Stopped at C:/tools/libxml/file, 1/32:
Unknown command: doc("Bookstore.xml")//Bookstore. Try HELP.
Stopped at C:/tools/libxml/file, 1/12:
Unknown command: //Bookstore. Try HELP.
Stopped at C:/tools/libxml/file, 1/20:
Unknown command: XQUERY[//Bookstore]. Try HELP.
Run Code Online (Sandbox Code Playgroud)
每当我试图击中Execute Query.我怎样才能让它真正起作用?我正在观看斯坦福教程,但那些显示在那里的命令无法正常工作BaseX.
下面你可以看到file我正在尝试查询教育目的.
<?xml version="1.0" ?>
<!--Bookstore with no DTD-->
<Bookstore>
<Book ISBN="ISBN-0-13-713526-2" Price="85" Edition="3rd">
<Title>A First Course in Database Systems</Title>
<Authors>
<Author>
<First_Name>Jeffrey</First_Name>
<Last_Name>Ullman</Last_Name>
</Author>
<Author>
<First_Name>Jennifer</First_Name>
<Last_Name>Widom</Last_Name>
</Author>
</Authors>
</Book>
<Book ISBN="ISBN-0-13-815504-6" Price="100">
<Remark> …Run Code Online (Sandbox Code Playgroud) 我的日期变量格式如下:25_December_2010
一旦我使用
Dim strDate As String
strDate = "25_December_2010"
strDate = Replace(strDate,"_"," ")
MsgBox strDate
Run Code Online (Sandbox Code Playgroud)
肯定会MsgBox弹出一个窗口并显示:2010 年 12 月 25 日。
但是,一旦我尝试将值放入单元格中,例如:
Sheets("Sheet1").Range("A1").Value = strdate
Run Code Online (Sandbox Code Playgroud)
而不是用以下cell内容填充:25 December 2010; Excel 会自行操作并使用令人烦恼的条目配置填充单元格:25-Dec-2010!
如何让我的单元格填充hyphen中间没有字符并且不修剪月份名称?
我试图使用这样的XQuery搜索BaseX:
XQUERY doc("ann-20140201.xml")//xbrl
Run Code Online (Sandbox Code Playgroud)
我正在提交原始实例的一小段摘录:
<?xml version="1.0" encoding="US-ASCII"?>
<xbrli:xbrl xmlns:ann="http://www.anninc.com/20140201" xmlns:dei="http://xbrl.sec.gov/dei/2013-01-31" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:us-gaap="http://fasb.org/us-gaap/2013-01-31" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<link:schemaRef xlink:href="ann-20140201.xsd" xlink:type="simple" />
<xbrli:context id="FD2011Q4YTD">
<xbrli:entity>
<xbrli:identifier scheme="http://www.sec.gov/CIK">0000874214</xbrli:identifier>
</xbrli:entity>
<xbrli:period>
<xbrli:startDate>2011-01-30</xbrli:startDate>
<xbrli:endDate>2012-01-28</xbrli:endDate>
</xbrli:period>
</xbrli:context>
<xbrli:context id="FD2011Q4YTD_ann_EarningsPerShareReconciliationAxis_ann_EarningsPerShareBasic.Member">
<xbrli:entity>
Run Code Online (Sandbox Code Playgroud)
但是,即使很明显,当我用它执行查询时,它<xbrl>是根元素,BaseX也不会返回任何内容!
当等效命令返回根时,如何才能返回任何内容?
的等效命令是:
XQUERY doc("ann-20140201.xml")//*
Run Code Online (Sandbox Code Playgroud)