Forum Discussion
VBA code fails in newest build
I think this could be because the macro was placed at the worksheet level
...without being sure as don't have a full picture of the code/file/intend.
Try right-clicking on the module node in the VBA project window,
click "Insert" => "Module"
and then paste your macro into the new module
(make sure you use the macro recorded at worksheet level Clear).
Hope I could help you with these information / links.
I know I don't know anything (Socrates)
Thank you for the suggestion. Unfortunately not - the line is in a module and always has been.
- mtarlerNov 11, 2022Silver Contributorare you sure RowToAddImage, ColumnToAddImage are both valid and don't have or result in a bad reference
- lazuli1485Nov 12, 2022Copper Contributor
Hi,
Both are valid. I've stripped the code back and it can be inserted into a blank workbook to test:
Private Sub CommandButton1_Click() Dim ImageToAdd Dim RowToAddImage RowToAddImage = 2 Dim ColumnToAddImage ColumnToAddImage = 7 Dim ImageURL As String 'ImageURL = "https://peters.co.uk/rgw/assets/covers/large/513/9781910002513.jpg" ' fails ImageURL = "https://peters.co.uk/uploads/downloads/medium/9781910002513.jpg" 'same image, same website, works Set ImageToAdd = ActiveSheet.Shapes.AddPicture(ImageURL, True, False, _ Cells(RowToAddImage, ColumnToAddImage).Left + 6, _ Cells(RowToAddImage, ColumnToAddImage).Top + (Cells(RowToAddImage, ColumnToAddImage).Height / 2), -1, -1) End SubAs you can see I've narrowed the error down - it is conditional upon the image source. It will work with an image hosted on Google or Amazon. It works with the image stored in one valid web location, but will not work in another.
My assumption at this point is that the newer builds is not treating the fail location as secure... but I have no idea why this might be the case.
- mtarlerNov 12, 2022Silver ContributorNot much more help but a few things I checked:
the files are the exact same but if i download both either will work from local drive
I got same results using ActiveSheet.Pictures.Insert(ImageURL)
i wonder if there is any issue with server location in that the one that doesn't work appears to be inside someone's account (https://peters.co.uk/rgw/assets/...) as opposed to the other that appears to be a public location (https://peters.co.uk/uploads/...). I know both can be viewed in a browser without any log in but maybe the site permissions for those location are different. I wonder if this has anything to do with the cross-origin sharing standard (CORS).