使用其他工作簿中的信息更新Excel工作表

时间:2015-10-17 19:11:35

标签: vba formatting copy data-formats

首先让我说我对使用excel和VBA非常陌生,但确实对c ++有一些经验。

情况:

我正在尝试使用另一个工作簿中的数据更新一个工作表。源文件的组织方式使每个新工作票都有一列。随着更多票证的进入,将创建更多列,并垂直列出有关该票证的各种信息。

基本上我要做的是保留第二个文件,使用与第一个相同的票号更新,但使用不同的格式:

Basic example of the two sheets

这是我到目前为止的内容,虽然对于我希望代码执行的基本概念非常粗略:

Sub Update_Click() //Button to update destination file

Workbooks.open("C:\Documents\mysourcefile.xlsm")
dim i,j as integer
i=4 //starting column of source file where first ticket is stored
j=2 //starting column of destination file where first ticket is stored

while worksheets("mysourcesheet").Value(i,2)<>0 //all work has customer, but
                                                //may not have a ticket 
                                                //number

if Worksheets("mysourcesheet").value(i,1) = 0 Then

i=i+1          //some columns in the source are blank due to canceled orders
               //this is to go to the next column 

else
if Worksheets("mysourcesheet").value(i,1)=Worksheets("mydestsheet").value(j,1)
then
i=i+1
j-j+2      //go onto the next if already updated
           //J+2 to account for formatting of the cells

Else
Worksheets("mysourcesheet").value(i,1)=Worksheets("mydestsheet").value(j,1)
Worksheets("mysourcesheet").value(i,2)=Worksheets("mydestsheet").value(j,2)
Worksheets("mysourcesheet").value(i,3)=Worksheets("mydestsheet").value(j,4)
Worksheets("mysourcesheet").value(i,4)=Worksheets("mydestsheet").value(j,5)

//copy the data

i=i+1
j=j+2

end if
end if
end sub

我意识到这可能充满了错误/基本错误,但是如果有人能伸出援助之手会很棒!

1 个答案:

答案 0 :(得分:1)

如果客户不为空,这将复制新票证,从源列中的1列到2列

try
{
    myInt = v.at(1);
}
catch(std::out_of_range)
{
}

enter image description here