当前位置: 首页 > 知识库问答 >
问题:

Excel VBA-编译错误-需要对象

施永贞
2023-03-14

我仍然离我要做的很远,但在选择和设置付款期限和到期期限的前几行得到了一个代码

错误是编译错误-对象必需。我不知道是什么。WIP代码复制如下

Private Sub Simulation_Click()
Dim PPT As String
Dim Term As String
MsgBox (" The Programme is starting now")

Set PPT = Workbooks("himanshu.xlsm").Worksheet("Sheet1").Range("G2").Value
Set Term = Workbooks("himanshu.xlsm").Worksheet("Sheet1").Range("G3").Value

For PPT = 1 To PPT  
    For Term = 1 To Term  
     ' Do something here  
    Next Term  
Next PPT  

End Sub

请帮助编辑#1-2017年9月19日上午3点10分,我的第一个VBA代码终于运行了。它很慢,但它在奔跑。我在代码行“Workbooks(”himanshu.xlsm“).sheet1”.range(“j2”).copy Workbooks(“himanshu.xlsm”).sheets(“what if”).cells(cols,Rowsh)“中遇到的最后一个问题,其中while to source携带正确的值(在调试模式下选中),但当它粘贴到target时,它被粘贴为0。当我检查目标表时,不知何故它向我显示了一个公式(=Max(R1C1:x1y1)。请注意,从我复制值(源)的地方,它是作为选择col J的Max的公式到达的excel计算。我怀疑代码是在复制公式而不是值。请指教

Option Explicit
Sub macro21()
'MsgBox ("Start")
Dim i As Integer, j As Integer
Dim PPT As Integer
Dim Term As Integer
Dim pptrange As Range    ' Address of the Cell where PPT is maintained in Sheet 1
Dim termrange As Range   ' Address of the Cell where Term is maintained in Sheet 1
Dim cols As Integer
Dim Rowsh As Integer

PPT = 3
Term = 5
cols = 3
Rowsh = 3
For i = 1 To PPT

    For j = 1 To Term
        
        Set pptrange = Workbooks("himanshu.xlsm").Sheets("Sheet1").Range("G2")  ' Set pptrange and termrange locations
        Set termrange = Workbooks("himanshu.xlsm").Sheets("Sheet1").Range("G3")   ' Set pptrange and termrange locations
        pptrange.Value = i
        termrange.Value = j
        ***Workbooks("himanshu.xlsm").Sheets("Sheet1").Range("J2").Copy Workbooks("himanshu.xlsm").Sheets("What if").Cells(cols, Rowsh)***
'        MsgBox ("Value is " & Cells(cols, Rowsh).Value)
        MsgBox ("Value is " & Workbooks("himanshu.xlsm").Sheets("Sheet1").Range("J2"))
        
        
        If j < Term Then
            cols = cols
            Rowsh = Rowsh + 1
        End If
    Next j
    cols = cols + 1
    Rowsh = 3
Next i

End Sub

我在代码行“Workbooks(”himanshu.xlsm“).sheet1”.range(“j2”).copy Workbooks(“himanshu.xlsm”).sheets(“what if”).cells(cols,Rowsh)“中有问题,其中while to source携带正确的值(在调试模式下选中),但当它粘贴到target时,它被粘贴为0。当我检查目标表时,不知何故它向我显示了一个公式(=Max(R1C1:x1y1)。请注意,从我复制值(源)的地方,它是作为选择col J的Max的公式到达的excel计算。我怀疑代码是在复制公式而不是值。请指教

共有1个答案

东郭淇
2023-03-14

PPT是一个字符串,因此您应该使用:

PPT = ...

而不是

 Set PPT = 

set用于分配对象变量,如工作簿、工作表等。

 类似资料:
  • 我正在使用Android Studio V0.8.14运行OS X Yosemite 我检查过的东西: Java版本: 我找不到JVM1.8的文件夹位置,有什么办法可以解决。

  • 我使用android Studio制作了一个静态编程语言MultiPlatform Mobile项目,导入SQLDelight后遇到以下错误: 我回答了这个问题,但他们提到的一切我都做对了。在一个文件一个文件地查看之后,我没有找到我在哪里声明了那个版本,于是我决定将我的项目与其中一个示例项目进行比较。 再次查看这些文件后,我发现我在我的应用程序等级中使用了SQLDelightVersion1.5.

  • 本文向大家介绍什么是预编译,何时需要预编译:相关面试题,主要包含被问及什么是预编译,何时需要预编译:时的应答技巧和注意事项,需要的朋友参考一下 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。

  • 问题内容: 当我在Netbeans中构建并运行程序时,它可以正常工作。但是当我尝试“ mvn compile”时,使用相同的pom.xml文件会出现以下错误: 我的Java版本不是1.3,这里是“ mvn -version”的结果 这是第53行: 问题答案: 问题是在Maven2中默认使用和 您可以通过将其添加到pom中来解决此问题: 将其放在最顶层的父pom中是很实际的,这样您派生的pom不需要

  • 我遇到了一个初学者的编译错误: 我的简单程序: 我尝试使用以下命令编译它: gcc-g-Wall-ansi launch_瓷砖。c-o tiles\u程序 并得到这些错误: 启动_tiles。c: 在函数“main”中: launch_tiles. c: 17:19:错误:预期')'之前';'令牌 launch_tiles. c: 17:19:错误:太少的参数函数'fget' /usr/inclu