Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从ppt VBA打印到Excel电子表格_Vba_Excel_Powerpoint - Fatal编程技术网

从ppt VBA打印到Excel电子表格

从ppt VBA打印到Excel电子表格,vba,excel,powerpoint,Vba,Excel,Powerpoint,我正在尝试将excel VBA转换为ppt VBA。原始excel VBA(在“Comparison.xlsm”中)比较了其他excel工作簿中的值,并在Comparison.xlsm的Sheet1中打印了不匹配的值 我知道我下面的代码(这是我的ppt VBA版本)看到了正确的工作簿,因为当我使用MsgBox打印值时,我得到了正确的值。但是,我的问题是当我试图将不正确的值打印到比较中时。xlsm的Sheet1位于: mainWB.Worksheets("Sheet1").Range("A" &a

我正在尝试将excel VBA转换为ppt VBA。原始excel VBA(在“Comparison.xlsm”中)比较了其他excel工作簿中的值,并在Comparison.xlsm的Sheet1中打印了不匹配的值

我知道我下面的代码(这是我的ppt VBA版本)看到了正确的工作簿,因为当我使用MsgBox打印值时,我得到了正确的值。但是,我的问题是当我试图将不正确的值打印到比较中时。xlsm的Sheet1位于:

mainWB.Worksheets("Sheet1").Range("A" & nextCell).Value = ID_ISS
mainWB.Sheets("Sheet1").Range("B" & nextCell).Value = "Symbol"
mainWB.Sheets("Sheet1").Range("B" & nextCell).Value = "(FCST)"
我只是没有看到它打印在excel电子表格中。以下是相关代码:

编辑:我将其更改为添加所有代码-

Dim strIDRangeISS As String
Dim strIDRangeFCST As String
Dim iRow As Integer
Dim iCol As Integer
Dim ID_ISS As Long
Dim ID_FCST As Long
Dim nextCell As Integer
Dim iRowISS As Integer
Dim iRowFCST As Integer

Dim wbkFCST As Excel.Workbook
Dim wbkISS As Excel.Workbook
Dim mainWB As Excel.Workbook  
Dim varSheetFCST As Excel.Worksheet
Dim varSheetISS As Excel.Worksheet
Dim mainWS As Excel.Worksheet

nextCell = 1

Set wbkFCST = Workbooks.Open("C:\Users\...\Documents\FCST.xlsx")
Set varSheetFCST = wbkFCST.Worksheets("Details")

Set wbkISS = Workbooks.Open(FileName:="C:\Users\...\Documents\ISS.xlsm")
Set varSheetISS = wbkISS.Worksheets("ISS")

Set mainWB = Workbooks.Open(FileName:="C:\Users\...\Documents\Comparison.xlsm")
Set mainWS = mainWB.Worksheets("Sheet1")

strIDRangeISS = "A2:D50" 
strIDRangeFCST = "B2:I50"

'varSheetISS = varSheetISS.Range(strIDRangeISS)
'varSheetFCST = varSheetFCST.Range(strIDRangeFCST)
Dim ISSArray As Variant: ISSArray = varSheetISS.Range(strIDRangeISS)
Dim FCSTArray As Variant: FCSTArray = varSheetFCST.Range(strIDRangeFCST)

For iRowISS = LBound(ISSArray, 1) To UBound(ISSArray, 1)    'Goes down ISS' ID column
    ID_ISS = ISSArray(iRowISS, 1)
    MsgBox ("ID_ISS is " & ID_ISS)      

    For iRowFCST = LBound(FCSTArray, 1) To UBound(FCSTArray, 1)    'Goes down FCST ID column
        ID_FCST = FCSTArray(iRowFCST, 1)
        MsgBox ("ID_FCST is " & ID_FCST)       

        'Compares ISS ID to FCST ID till finds matching
        If (ID_ISS = ID_FCST) Then
            'If corr symbols aren't same, record ID in Comparison's spreadsheet and go onto next ISS ID
            If (ISSArray(iRowISS, 3) <> FCSTArray(iRowFCST, 2)) Or (ISSArray(iRowISS, 4) <> FCSTArray(iRowFCST, 8)) Then
                mainWB.Worksheets("Sheet1").Range("A" & nextCell).Value = ID_ISS

                'Symbol mismatch
                If (ISSArray(iRowISS, 3) <> FCSTArray(iRowFCST, 2)) Then
                    mainWB.Sheets("Sheet1").Range("B" & nextCell).Value = "Symbol"
                End If

                '(FCST) mismatch
                If (ISSArray(iRowISS, 4) <> FCSTArray(iRowFCST, 8)) Then
                    mainWB.Sheets("Sheet1").Range("B" & nextCell).Value = "(FCST)"
                End If

                nextCell = nextCell + 1
            End If
            Exit For    'If corr symbols are same, go onto next ISS ID
        End If

        'Reached end of FCST ID's and no match -> record ISS ID
        If iRowFCST = 49 Then
            Workbooks("Comparison.xlsm").Sheets("Sheet1").Range("A" & nextCell).Value = ID_ISS
            Workbooks("Comparison.xlsm").Sheets("Sheet1").Range("B" & nextCell).Value = "No corressponding Issue ID"
            nextCell = nextCell + 1
            Exit For
        End If

    Next iRowFCST
Next iRowISS
Dim strIDRangeISS作为字符串
像弦一样模糊的条纹
Dim iRow作为整数
作为整数的Dim-iCol
暗ID_与长ID_相同
暗ID_FCST尽可能长
Dim nextCell作为整数
Dim iRowISS作为整数
Dim iRowFCST为整数
将wbkFCST设置为Excel.工作簿
以Excel.Workbook的形式创建wbkISS
将主WB设置为Excel.工作簿
将varSheetFCST设置为Excel.工作表
将varSheetISS作为Excel.工作表进行标注
将mainWS设置为Excel.Worksheet
nextCell=1
设置wbkFCST=Workbooks.Open(“C:\Users\…\Documents\FCST.xlsx”)
设置varSheetFCST=wbkFCST.工作表(“详细信息”)
设置wbkISS=Workbooks.Open(文件名:=“C:\Users\…\Documents\ISS.xlsm”)
设置varSheetISS=wbkISS.Worksheets(“ISS”)
设置mainWB=Workbooks.Open(文件名:=“C:\Users\…\Documents\Comparison.xlsm”)
设置mainWS=mainWB.工作表(“表1”)
strIDRangeISS=“A2:D50”
strIDRangeFCST=“B2:I50”
'varSheetISS=varSheetISS.范围(strIDRangeISS)
'varSheetFCST=varSheetFCST.Range(strIDRangeFCST)
尺寸ISSRARY作为变量:ISSRARY=varSheetISS.Range(strIDRangeISS)
尺寸FCSTArray作为变型:FCSTArray=varSheetFCST.范围(strIDRangeFCST)
对于iRowISS=LBound(ISSArray,1)到UBound(ISSArray,1),在ISS ID列中“向下”
ID_ISS=ISSArray(iRowISS,1)
MsgBox(“ID_ISS是”&ID_ISS)
对于iRowFCST=LBound(FCSTArray,1)到UBound(FCSTArray,1),将在FCST ID列中显示'
ID_FCST=FCSTArray(iRowFCST,1)
MsgBox(“ID\u FCST is”&ID\u FCST)
'将ISS ID与FCST ID进行比较,直到找到匹配项
如果(ID_ISS=ID_FCST),则
'如果corr符号不相同,则在比较的电子表格中记录ID并转到下一个ISS ID
如果是(ISSArray(iRowISS,3)FCSTArray(iRowFCST,2))或(ISSArray(iRowISS,4)FCSTArray(iRowFCST,8)),则
mainWB.工作表(“Sheet1”).范围(“A”和nextCell).值=ID\U ISS
'符号不匹配
如果(ISSArray(iRowISS,3)FCSTArray(iRowFCST,2)),那么
mainWB.Sheets(“Sheet1”).范围(“B”和nextCell).Value=“Symbol”
如果结束
“(FCST)不匹配
如果(ISSArray(iRowISS,4)FCSTArray(iRowFCST,8)),那么
mainWB.Sheets(“Sheet1”).范围(“B”和nextCell).Value=“(FCST)”
如果结束
nextCell=nextCell+1
如果结束
退出“如果corr符号相同,则转到下一个ISS ID
如果结束
'到达FCST ID的末尾,但没有匹配->记录ISS ID
如果iRowFCST=49,则
工作簿(“Comparison.xlsm”).工作表(“Sheet1”).范围(“A”和nextCell).Value=ID\u ISS
工作簿(“Comparison.xlsm”).工作表(“Sheet1”).范围(“B”和nextCell).Value=“无相应的问题ID”
nextCell=nextCell+1
退出
如果结束
下一个iRowFCST
下一个iRowISS

您可以显示其余的代码吗?例如,这是做什么的?:如果(ISSArray(iRowISS,3)FCSTArray(iRowFCST,2)),那么您会得到什么错误?您确定
nextCell
的整数值大于0吗?@我编辑了苦艾酒,使其具有所有code@PortlandRunner-当您逐行(例如)浏览代码时会发生什么情况?你是不是已经通过了If语句?@PortlandRunner-Oops,对不起!你能展示你剩下的代码吗?例如,这是做什么的?:如果(ISSArray(iRowISS,3)FCSTArray(iRowFCST,2)),那么您会得到什么错误?您确定
nextCell
的整数值大于0吗?@我编辑了苦艾酒,使其具有所有code@PortlandRunner-当您逐行(例如)浏览代码时会发生什么情况?你是不是已经通过了If语句?@PortlandRunner-Oops,对不起!