Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Cell object is null!

Contributor ,
Sep 05, 2022 Sep 05, 2022

I get the third merged cell as null. Why is that?

Please to get the error First create new document and table 3 by 3 and merge and select cells like screenshot. Execute the script.

 

var sel = app.selection[0];
var queuedCells = getQueuedCells ([sel]);
function getQueuedCells (deepCells) {
    var queuedCells = new Array;
    if (deepCells.length > 0) {
        targetIndex = null;
        targetIndex = deepCells[0].parentRow.index;
        for (var dcs = 0; dcs < deepCells.length; dcs++) {
            for (var dcc = 0; dcc < deepCells[dcs].cells.length; dcc++) {
                alert ("(deepCells[" + dcs + "].cells[" + dcc + "] != null) " + (deepCells[dcs].cells[dcc] != null));
                if (targetIndex == deepCells[dcs].cells[dcc].parentRow.index) {
                    queuedCells.push (deepCells[dcs].cells[dcc]);
                }
            }
        }
    }
    return queuedCells;
}

 

 

 

Screenshot 2022-09-06 091805.pngexpand image

Also I posted as a bug here:

Cell object is null! – Adobe InDesign (uservoice.com)

TOPICS
Scripting
524
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Community Expert , Sep 06, 2022 Sep 06, 2022

Well, seems you discovered a bug!

I have no idea if this can be fixed or will be fixed.

 

Also tested and I see exactly the same. Let's name the column A,B,C and the cells 1,2,3 in a row. Then selected cells are:

A2, A3, B2 merged with B3 will only return two [object Cell] when we work with app.selection[0]. Yes, this must be a bug. Only A2 and A3 are returned by scripting.

 

Regards,
Uwe Laubender
( Adobe Community Professional )

Translate
Community Expert ,
Sep 06, 2022 Sep 06, 2022

Hi @dulajun ,

what will be returned with:

app.selection[0].cells.everyItem().getElements();

Is it an array of three cells?

 

Or will InDesign crash?

( Had something like this in a slightly different situation when working with merged cells. )

 

Regards,
Uwe Laubender
( Adobe Community Professional )

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Sep 06, 2022 Sep 06, 2022

InDesign application doesn't crash.

But it's supposed to be three cells according to the selected ones.

My script returned three cells but the third is null.

I tried to add 

.everyItem().getElements();

 and I get tow elements without the third merged one.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Sep 06, 2022 Sep 06, 2022

I executed the following code and get 2 in first screenshot and 3 in the second.Screenshot 2022-09-06 123503.pngexpand imageScreenshot 2022-09-06 123549.pngexpand image

var r = app.selection[0].cells.everyItem().getElements();
alert (r.length);

 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Sep 06, 2022 Sep 06, 2022

Well, seems you discovered a bug!

I have no idea if this can be fixed or will be fixed.

 

Also tested and I see exactly the same. Let's name the column A,B,C and the cells 1,2,3 in a row. Then selected cells are:

A2, A3, B2 merged with B3 will only return two [object Cell] when we work with app.selection[0]. Yes, this must be a bug. Only A2 and A3 are returned by scripting.

 

Regards,
Uwe Laubender
( Adobe Community Professional )

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Sep 06, 2022 Sep 06, 2022

Wheras app.selection[0].cells.length returns 3.

Crazy…

 

Regards,
Uwe Laubender
( Adobe Community Professional )

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Sep 06, 2022 Sep 06, 2022

Hi @dulajun ,

seems that this bug is very old.

Just tested with InDesign CS6 and its all the same issue.

Only two out of three cells are returned with: app.selection[0].cells.everyItem() . The only thing is that app.selection[0].cells.length returns the right number.

 

So one could at least detect that there is a bug if you compare cells.length with cells.everyItem().getElements().length. Both values will not match.

 

Regards,
Uwe Laubender
( Adobe Community Professional )

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Sep 06, 2022 Sep 06, 2022

Another relevant thread that I think speaks to this bug: https://community.adobe.com/t5/indesign-discussions/weird-behaviour-of-itembyrange-function/m-p/1247...

 

I have always encountered strange errors when dealing with merged cells. My strategy has always been to record values, unmerge, operate on the known, expected range, and remerge. 

 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Sep 06, 2022 Sep 06, 2022
LATEST

I just reviewed that topic. But I think the difference is that what we've brought up here involves a software bug rather than a functional logical bug.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines