我创建了一个用户定义的类型来包含一些我将用于填充表单的数据.我正在使用该用户定义类型的数组,并且当我从异地服务器提取数据时,我调整了该数组的大小.
为了使我的程序更容易消化,我已经开始将它分成子程序.但是,当我的程序初始化时,我无法判断特定阵列何时被初始化,因此我不能确定我可以调用大小函数来查看该数组是否为空.
有没有办法初始化空用户类型或检测空用户类型?目前,我正在进行硬编码,我更喜欢更优雅的解决方案.
有没有办法在vba中说:
from x = 1 to 100, by 10
Run Code Online (Sandbox Code Playgroud)
所以x是1,10,20,30等等到100?
无论如何都要替换文本框中的文本,例如见下文.我目前正在使用它,但似乎在VBA中效果不佳.
If TextBox6.Text.Contains("<GTOL-PERP>") Then
TextBox6.Text = TextBox6.Text.Replace("<GTOL-PERP>", "j")
End If
Run Code Online (Sandbox Code Playgroud) 我使用Excel VBA创建图表,我想调整线条颜色和x轴间隔.
以下是代码:
Sub add_cpu_chart(server_hostname, site)
On Error Resume Next
Dim rpt_site As String
rpt_site = site
Set tbl = ThisWorkbook.Sheets(server_hostname).ListObjects(1)
strTableName = tbl.Name
strTableRange = tbl.Range.Address
Dim m_s_name, m_e_name As Date
m_s_name = CDate(fromDateStr)
m_e_name = CDate(toDateStr)
'Create new embedded chart
Set shp = ThisWorkbook.Sheets(server_hostname).Shapes.AddChart
'Position Shape over range
shp.Top = 100
shp.Left = 200
With shp
With .Chart
'Specify source data and orientation
'.SetSourceData Source:=ActiveSheets.Range(Table1 & "[#All]"), _
'PlotBy:=xlRows
.SetSourceData Source:=ThisWorkbook.Sheets(server_hostname).Range(strTableName & "[#All]")
.ChartType = xlLineMarkers
.SetElement (msoElementChartTitleAboveChart) …Run Code Online (Sandbox Code Playgroud) 我目前正在处理来自大型机的数据,与此处提供的数据不同.在这种情况下,对于我的标准和目标数据集,我所有的字符串都类似于100-AAA.我已经搜索了类似的解决方案,但我没有找到针对VBA上的范围问题的直接过滤器.
我试图根据一系列标准过滤大型数据集.最初,我开始在单独的类/子例程中使用集合,但后来我压缩到在单个子例程中使用范围,如下所示:
Sub FilterTest1()
Dim RngOne As Range
Dim LastCell As Long
Sheets("Criteria").Activate
Sheets("Criteria").Select
Range("A1").Select
LastCell = Application.WorksheetFunction.CountA(ActiveSheet.Range("A:A"))
Set RngOne = ActiveSheet.Range("A2:A" & LastCell)
Sheets("Sheet 1").Activate
Sheets("Sheet 1").Select
With ActiveSheet
If .FilterMode Then
.ShowAllData
End If
End With
Columns("A:A").Select
Selection.AutoFilter
ActiveSheet.Range("A:A").AutoFilter Field:=1, Criteria1:=RngOne, Operator:=xlOr
End Sub
Run Code Online (Sandbox Code Playgroud)
不幸的是,我的单元格范围不会过滤数据,即使使用的标准如下Operator:=xlOr- 它只显示用于标准的最后一个单元格值.VBA代码不会失败 - 它只是根据范围不能正确过滤.
我确信存在一个简单的解决方案,但我无法看到它.