vba - 在 vba 中找不到方法或数据成员
问题描述
谁能帮帮我。?我收到编译错误。谢谢!
写在一个单独的模块中:
Sub Compare2Worksheets(ws1 As Worksheet, ws2 As Worksheet)
Dim ws1row As Long, ws2row As Long, ws1col As Integer, ws2col As Integer
Dim maxrow As Long, maxcol As Integer, colval1 As String, colval2 As String
Dim report As Workbook, difference As Long
Dim row As Long, col As Integer
Set report = Workbooks.Add
With ws1.UsedRange
ws1row = Rows.Count
ws1.col = Columns.Count
End With
With ws2.UsedRange
ws2row = Rows.Count
ws2col = Columns.Count
End With
maxrow = ws1row
maxcol = ws1column
If maxrow < ws2row Then maxrow = ws2row
If maxcol < ws2col Then maxcol = ws2col
difference = 0
For col = 1 To maxcol
For row = 1 To maxrow
colval1 = ""
colval2 = ""
colval1 = ws1.Cells(row, col).Formula
colval2 = ws2.Cells(row, col).Formula
If colval1 <> colval2 Then
difference = difference + 1
Cells(row, col).Formula = colval1 & "<>" & colval2
Cells(row, col).Interior.Color = 255
Cells(row, col).Font.ColorIndex = 2
Cells(row, col).Font.Bold = True
End If
Next row
Next col
End
为插入的命令按钮而写
Private Sub CommandButton1_Click()
Set myWorkbook1 = Workbooks.Open("C:\Users\testsample.xlsm")
Compare2Worksheets myWorkbook1.Worksheets("Sheet1"), myWorkbook1.Worksheets("Sheet2")
End Sub
请注意,这是我从 VBA 基础教程中获得的代码。
解决方案
- 更改
ws1.col = Columns.Count
为ws1col = Columns.Count
摆脱第一个错误。猜测这是变量名的拼写错误,但编译器正在寻找col
由于"."
. 见第 3 点。 - 将此更改
ws1column
为ws1col
- 放在
Option Explicit
代码的顶部以检查这些事情,即上面的错误 - 请注意,使用诸如
Cells(row, col)
etc 之类的语法,如果您没有指定正在使用的工作表名称,则默认为Activesheet
,这可能是也可能不是您想要的工作表。这可能会导致错误。最好明确指定您正在使用的工作表,然后使用.
语法,例如
With Worksheets("Sheet1")
.Cells(row, col)
End With
- 使用 With 语句时,在 With 内部,当引用父对象时使用“.”。例如
.Rows.Count
- 我自动将其更正
End
为End Sub
,以为我在复制时犯了错误。刚刚注意到,从评论中,这也应该是 End Sub notEnd
。End
将终止该计划。
推荐阅读
- c# - 标识符应为 c# 未知原因
- c# - 反向poco c#批量插入实体框架“对象引用未设置为对象的实例”
- windows - 推荐人策略隐藏自签名证书的推荐人
- android - 我是否需要更新应用注册才能使用 FCM
- c# - 启用不在列表中显示的值 - System.ArgumentException:DataGridViewComboBoxCell 值无效
- reactjs - 创建自定义装饰器“@”以从其父目录导入模块(ReactJs)
- javascript - 使用 import 和 require 公开 node_module
- gitlab - 仅在 .gitlab-ci.yml 中复杂的析取逻辑
- php - Woocommerce / 如何按库存状态对相关产品进行排序?
- php - 用户::where(user->id==$profile->id); 获取与控制器中的用户相同的配置文件