求助啊!高分奉上,EXCEL合并格的问题(300分)

  • 主题发起人 主题发起人 Eyongjiang
  • 开始时间 开始时间
E

Eyongjiang

Unregistered / Unconfirmed
GUEST, unregistred user!
如何读取EXCEL合并格的值,如下
|A|B|C|D|E|F|
1 | | | | | |
2 | | | | | |
假如B1和A1为合并格,这是我判断 B1的值和C1的值是否相同,如果相同就将C1和
B1格合并,应为我不知道当前格的前面一个是否合并了单元格而且合并了几个,所
以我只能是判断当前单元格前面一个区域,我是这样写的
var ma:variant
ma=range("A1").mregeArea
if Vartostr(Range("C1").value)=vartostr(ma.cells(1,1).value)
then....

运行时它就会提示我‘停用了"调用取消"’ 究竟是什么意思 如果是我理解错了,我改如何去读取
合并格的单元数据。先申明,不能用先用变量保存A1的值这种方法!
 
为什么没人回答?高手哪?
 
真不知道如何理解你写的东西。
1.var 定义好象是DELPHI里的东西,
VB是用 Dim ma as Variant。
2.然后下面的两行语句又象是VB语句, 因为DELPHI不会用双引号,而且还会有:=。但VB里又没有vartostr,
3.DELPHI中用的是[],VB中用的是()......
你现在D&V结合。唉……
给两个例子你看看吧。
DELPHI 中:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
ExcelApp, Ms, Ma:variant;
begin
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.Visible := True;
ExcelApp.workBooks.Open('Excel文件名.xls'); //打开已存在工作簿
Ms := ExcelApp.ActiveWorkBook.ActiveSheet;
Ma := Ms.Range['B5'].MergeArea;
If VarToStr(Ms.Range['D5'].Value) = VarToStr(Ma.Cells[1, 1].Value) Then
ShowMessage('OK');
end;
EXCEL的VB编辑器中:
Public Sub VBA()
Dim ma As Variant

ThisWorkbook.ActiveSheet.Activate
Set ma = Range("B5").MergeArea

If Range("D5").Value = Ma.Cells(1, 1).Value Then
MsgBox ("OK")
End If
End Sub

这两个程序没经过调试,可能会有点小问题,你应该解决得了的了。
看看还有什么不对的,再说。。。。。。

 
接受答案了.
 
后退
顶部