我正在尝试使用VBA循环使用以下简单的XML,最终目标是能够轻松地按顺序提取数据.
<?xml version="1.0"?>
<PMRData>
<Staff StaffName="Person 1">
<Openings>1.1</Openings>
<Closures>1.11</Closures>
</Staff>
<Staff StaffName="Person 2">
<Openings>1.2</Openings>
<Closures>1.22</Closures>
</Staff>
<Staff StaffName="Person 3">
<Openings>1.3</Openings>
<Closures>1.33</Closures>
</Staff>
</PMRData>
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的代码设法将数据导入立即窗口,但不是按照我需要的顺序.它应该是:员工姓名Person1开口1.1关闭1.11员工姓名人员2开口2.2关闭2.22等
意思是我需要使我的递归函数具体,而不是为所有节点循环.任何帮助将不胜感激!这就是我到目前为止......
Dim xDoc As DOMDocument
Set xDoc = New DOMDocument
Dim xNode As IXMLDOMNode
Dim xElem As IXMLDOMElement
Dim xElemCount As Integer
Dim xSub As IXMLDOMElement
Dim Nodes As IXMLDOMNodeList
Set xElem = xDoc.SelectSingleNode("//PMRData")
Range("a1").Select
xElemCount = xElem.ChildNodes.Length
Debug.Print "xElem has " & xElemCount & " Nodes"
For Each xSub In xElem.ChildNodes
If xSub.Attributes.Length > 0 …Run Code Online (Sandbox Code Playgroud) 我是WPF的新手,我真的想尽可能地弄清楚自己...
我已经创建了我的第一个DataGrid控件,我试图用一个字符串列表填充它,如下所示:
<UserControl x:Class="DataGridTest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid Style="{StaticResource ContentRoot}">
<DataGrid Name="MyDataGrid" ItemsSource="{Binding}" HorizontalAlignment="Stretch" Height="500"/>
</Grid>
</UserControl>
Private Sub DataGridTest_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
Dim StringCollection As List(Of String) = New List(Of String)
StringCollection.Add("Test")
StringCollection.Add("Test1")
StringCollection.Add("Test2")
StringCollection.Add("Test3")
StringCollection.Add("Test4")
MyDataGrid.DataContext = StringCollection
End Sub
Run Code Online (Sandbox Code Playgroud)
但是,它实际上填充了标题"长度",值为字符串的长度.为什么它本身没有填充字符串值?
很明显,我在这里缺少一些基本的东西,但我不能为我的生活弄清楚它是什么.
提前致谢!
我正在尝试创建一个类来处理 Access 中的多个控制事件。这是为了避免重复键入多行相同的代码。
我已遵循下一页上的答案,但进行了一些调整以使其适合 Access 而不是 Excel。
我的班级代码如下:
Option Compare Database
Public WithEvents ct As Access.CommandButton 'Changed object type to something recognised by Access
Public Sub ct_Click()
MsgBox ct.Name & " clicked!"
End Sub
Run Code Online (Sandbox Code Playgroud)
我的表单代码如下:
Option Compare Database
Private listenerCollection As New Collection
Private Sub Form_Load()
Dim ctItem
Dim listener As clListener
For Each ctItem In Me.Controls
If ctItem.ControlType = acCommandButton Then 'Changed to test whether control is a Command Button
Set listener = New clListener
Set listener.ct = …Run Code Online (Sandbox Code Playgroud)